diff --git a/src/syscap_tool.c b/src/syscap_tool.c index fedff4d..4ab4a6a 100644 --- a/src/syscap_tool.c +++ b/src/syscap_tool.c @@ -697,6 +697,20 @@ static int32_t CompareVersion(uint32_t *pcidOsArray, uint32_t *rpcidOsAarry) return versionFlag; } +static void FreePointerMemoryEnd(char *pcidContent, char *rpcidContent, char *pcidPriSyscap, char *rpcidPriSyscap, uint32_t type) +{ + printf("After the compare cmd is executed, relase the memory.\n"); + if (type == TYPE_FILE) { + SafeFree(pcidContent); + SafeFree(rpcidPriSyscap); + SafeFree(rpcidContent); + SafeFree(pcidPriSyscap); + } else if (type == TYPE_STRING) { + SafeFree(rpcidPriSyscap); + SafeFree(pcidPriSyscap); + } +} + int32_t ComparePcidWithRpcidString(char *pcidFile, char *rpcidFile, uint32_t type) { int32_t ret; @@ -750,12 +764,6 @@ int32_t ComparePcidWithRpcidString(char *pcidFile, char *rpcidFile, uint32_t typ printf("Fail! The pcid does not meet the rpcid\n"); } - if (type == TYPE_FILE) { - FreePointerMemory(pcidContent, rpcidContent, pcidPriSyscap, rpcidPriSyscap); - } else if (type == TYPE_STRING) { - SafeFree(pcidPriSyscap); - SafeFree(rpcidPriSyscap); - } - + FreePointerMemoryEnd(pcidContent, rpcidContent, pcidPriSyscap, rpcidPriSyscap, type); return 0; }