diff --git a/src/rrdCommon.h b/src/rrdCommon.h index 8f5544b7..191ee474 100644 --- a/src/rrdCommon.h +++ b/src/rrdCommon.h @@ -58,6 +58,7 @@ extern "C" #define RRD_MEDIA_APPS "/media/apps/" #define RDM_PKG_PREFIX "RDK-RRD-" #define RDM_PKG_SUFFIX ":1.0" +#define RRD_DYNAMIC_PROFILE_MAX_LENGTH 34 #ifndef RRD_PROFILE_LIST #define RRD_DEVICE_PROFILE "" diff --git a/src/rrdDynamic.c b/src/rrdDynamic.c index 2deee32a..2ca88cba 100644 --- a/src/rrdDynamic.c +++ b/src/rrdDynamic.c @@ -135,6 +135,11 @@ int RRDGetProfileStringLength(issueNodeData *pissueStructNode, bool isDeepSleepA const char *profileName = getRrdProfileName(&devPropData); if(profileName && strlen(profileName) > 0){ + if (strlen(profileName) > RRD_DYNAMIC_PROFILE_MAX_LENGTH ){ + profileName = ""; + RDK_LOG(RDK_LOG_DEBUG, LOG_REMDEBUG, "[%s:%d]: Profile length greater than 34 \n", __FUNCTION__, __LINE__); + return 0; + } length = prefixlen + strlen(profileName) + suffixlen + 1; } else{