diff --git a/src/create_pcid.c b/src/create_pcid.c index 1b08215bc22b6d05260ac2ba526223c29de62bab..2e94d285619905ec1783da2cdd7d94f540c73a5c 100644 --- a/src/create_pcid.c +++ b/src/create_pcid.c @@ -379,6 +379,11 @@ static int32_t GetPriSyscap(PCIDMain *pcidMain, cJSON *sysCapObject, int32_t con char *tempPriSyscapStr = priSyscapStr; char *ptrPrivateSyscap = (char *)(pcidMain + 1); while (*ptrPrivateSyscap != '\0') { + size_t currentLen = tempPriSyscapStr - priSyscapStr; + if (currentLen >= SINGLE_SYSCAP_LEN - 1) { + printf("Syscap name exceeds maximum length\n"); + return GetPriSyscapResult(capVectorPtr, -1); + } size_t currentLen = tempPriSyscapStr - priSyscapStr; if (currentLen >= SINGLE_SYSCAP_LEN - 1) { printf("Syscap name exceeds maximum length\n");