diff --git a/interfaces/inner_api/syscap_interface.c b/interfaces/inner_api/syscap_interface.c index 7ac6a934e1e3ab1f2570383219a9beebff47315e..1b17c15ae2aa67b51cabe451d82d9e5912f18bfc 100644 --- a/interfaces/inner_api/syscap_interface.c +++ b/interfaces/inner_api/syscap_interface.c @@ -395,6 +395,7 @@ char *DecodeRpcidToStringFormat(const char *inputFile) ret = sprintf_s(outBuffer, outBufferLen, "%u", outUint[0]); if (ret == -1) { PRINT_ERR("sprintf_s failed.\n"); + free(outBuffer); outBuffer = NULL; goto FREE_MALLOC_PRISYSCAP; } @@ -402,6 +403,7 @@ char *DecodeRpcidToStringFormat(const char *inputFile) ret = sprintf_s(outBuffer, outBufferLen, "%s,%u", outBuffer, outUint[i]); if (ret == -1) { PRINT_ERR("sprintf_s failed.\n"); + free(outBuffer); outBuffer = NULL; goto FREE_MALLOC_PRISYSCAP; } @@ -412,6 +414,7 @@ char *DecodeRpcidToStringFormat(const char *inputFile) priSyscapArray + i * SINGLE_SYSCAP_LEN); if (ret == -1) { PRINT_ERR("sprintf_s failed.\n"); + free(outBuffer); outBuffer = NULL; goto FREE_MALLOC_PRISYSCAP; }