| From 610dd1f2e5ff499ae025d84136f2bff364fbfc09 Mon Sep 17 00:00:00 2001 |
| From: Muhammad Usama <muhammadusama@google.com> |
| Date: Tue, 21 Apr 2026 21:08:06 +0000 |
| Subject: [PATCH] libpldm: Increase allowed length of dev name |
| |
| Google-Bug-Id: 502983911 |
| Signed-off-by: Muhammad Usama <muhammadusama@google.com> |
| --- |
| include/libpldm/requester/pldm_base_requester.h | 1 + |
| include/libpldm/requester/pldm_platform_requester.h | 2 +- |
| include/libpldm/requester/pldm_rde_requester.h | 2 +- |
| src/requester/pldm_platform_requester.c | 5 +++++ |
| src/requester/pldm_rde_requester.c | 2 +- |
| 5 files changed, 9 insertions(+), 3 deletions(-) |
| |
| diff --git a/include/libpldm/requester/pldm_base_requester.h b/include/libpldm/requester/pldm_base_requester.h |
| index 49c4846..6d556bc 100644 |
| --- a/include/libpldm/requester/pldm_base_requester.h |
| +++ b/include/libpldm/requester/pldm_base_requester.h |
| @@ -11,6 +11,7 @@ extern "C" { |
| |
| #define PLDM_TYPES 6 |
| #define MAX_DEV_NAME_SIZE 32 |
| +#define PLDM_MAX_DEV_NAME_LEN 15 |
| |
| typedef enum requester_return_codes { |
| PLDM_BASE_REQUESTER_SUCCESS = 0, |
| diff --git a/include/libpldm/requester/pldm_platform_requester.h b/include/libpldm/requester/pldm_platform_requester.h |
| index dc83a83..fd8d671 100644 |
| --- a/include/libpldm/requester/pldm_platform_requester.h |
| +++ b/include/libpldm/requester/pldm_platform_requester.h |
| @@ -46,7 +46,7 @@ struct pldm_platform_requester_context { |
| uint8_t requester_status; |
| void *operation_ctx; |
| |
| - char device_name[8]; |
| + char device_name[PLDM_MAX_DEV_NAME_LEN + 1]; |
| int net_id; |
| uint32_t negotiated_transfer_size; |
| }; |
| diff --git a/include/libpldm/requester/pldm_rde_requester.h b/include/libpldm/requester/pldm_rde_requester.h |
| index 1e37c0a..2ed8164 100644 |
| --- a/include/libpldm/requester/pldm_rde_requester.h |
| +++ b/include/libpldm/requester/pldm_rde_requester.h |
| @@ -195,7 +195,7 @@ struct pldm_rde_requester_context { |
| struct pldm_rde_requester_manager { |
| bool initialized; |
| uint8_t n_ctx; |
| - char device_name[8]; |
| + char device_name[PLDM_MAX_DEV_NAME_LEN + 1]; |
| int net_id; |
| |
| uint8_t mc_concurrency; |
| diff --git a/src/requester/pldm_platform_requester.c b/src/requester/pldm_platform_requester.c |
| index fef4e9a..8832b91 100644 |
| --- a/src/requester/pldm_platform_requester.c |
| +++ b/src/requester/pldm_platform_requester.c |
| @@ -19,6 +19,11 @@ pldm_platform_requester_rc_t pldm_platform_init_context( |
| ctx->initialized = true; |
| |
| ctx->requester_status = PLDM_PLATFORM_REQUESTER_NO_PENDING_ACTION; |
| + if ((device_id == NULL) || (strlen(device_id) == 0) || |
| + (strlen(device_id) > PLDM_MAX_DEV_NAME_LEN)) { |
| + fprintf(stderr, "Incorrect device id provided\n"); |
| + return PLDM_PLATFORM_CONTEXT_INITIALIZATION_ERROR; |
| + } |
| strcpy(ctx->device_name, device_id); |
| ctx->net_id = net_id; |
| ctx->negotiated_transfer_size = negotiated_transfer_size; |
| diff --git a/src/requester/pldm_rde_requester.c b/src/requester/pldm_rde_requester.c |
| index cdc7f07..dffec30 100644 |
| --- a/src/requester/pldm_rde_requester.c |
| +++ b/src/requester/pldm_rde_requester.c |
| @@ -38,7 +38,7 @@ pldm_rde_init_context(const char *device_id, int net_id, |
| } |
| |
| if ((device_id == NULL) || (strlen(device_id) == 0) || |
| - (strlen(device_id) > 8)) { |
| + (strlen(device_id) > PLDM_MAX_DEV_NAME_LEN)) { |
| fprintf(stderr, "Incorrect device id provided\n"); |
| return PLDM_RDE_CONTEXT_INITIALIZATION_ERROR; |
| } |
| -- |
| 2.54.0.rc2.533.g4f5dca5207-goog |
| |