diff --git a/interfaces/inner_api/syscap_interface.c b/interfaces/inner_api/syscap_interface.c index 0580c69..ffaec32 100644 --- a/interfaces/inner_api/syscap_interface.c +++ b/interfaces/inner_api/syscap_interface.c @@ -625,6 +625,11 @@ static int32_t ComparePcidWithPriSyscap(struct PcidPriSyscapInfo pcidPriSyscapIn free(temp); return -1; } + if (pcidPriSyscapInfo.ossyscapFlag + prisyscapFlag >= MAX_MISS_SYSCAP) + { + PRINT_ERR("array index out of bounds.\n"); + return -1; + } result->syscap[pcidPriSyscapInfo.ossyscapFlag + prisyscapFlag] = temp; ++prisyscapFlag; } diff --git a/src/main.c b/src/main.c index 2fd051a..be00763 100644 --- a/src/main.c +++ b/src/main.c @@ -74,9 +74,9 @@ int main(int argc, char **argv) int32_t ret; uint16_t bitMap = 0x0; char curpath[PATH_MAX] = {0}; - g_customerfileinfo.inputfile = NULL; - g_customerfileinfo.pcidfile = NULL; - g_customerfileinfo.rpcidfile = NULL; + g_customerfileinfo.inputfile = ""; + g_customerfileinfo.pcidfile = ""; + g_customerfileinfo.rpcidfile = ""; char *outputpath = getcwd(curpath, sizeof(curpath)); if (outputpath == NULL) { PRINT_ERR("Get outputpath failed.\n");