From: Oliver Kurth Date: Thu, 3 Oct 2019 00:48:35 +0000 (-0700) Subject: Fix leaks in ListAliases and ListMappedAliases. X-Git-Tag: stable-11.0.1~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94abb05ae948eae31091a5bdcdd5d78e5e0192d1;p=thirdparty%2Fopen-vm-tools.git Fix leaks in ListAliases and ListMappedAliases. The 'record' for each alias was being leaked. --- diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c index 44bca5cbd..c40ad15a0 100644 --- a/open-vm-tools/services/plugins/vix/vixTools.c +++ b/open-vm-tools/services/plugins/vix/vixTools.c @@ -9762,7 +9762,6 @@ VixToolsListAuthAliases(VixCommandRequestHeader *requestMsg, // IN char *destPtr; char *endDestPtr; char *tmpBuf = NULL; - char *recordBuf; size_t recordSize; char *escapedStr = NULL; char *escapedStr2 = NULL; @@ -9822,6 +9821,8 @@ VixToolsListAuthAliases(VixCommandRequestHeader *requestMsg, // IN destPtr += Str_Sprintf(destPtr, endDestPtr - destPtr, "%s", VIX_XML_ESCAPED_TAG); for (i = 0; i < num; i++) { + char *recordBuf = NULL; + escapedStr = VixToolsEscapeXMLString(uaList[i].pemCert); if (escapedStr == NULL) { err = VIX_E_OUT_OF_MEMORY; @@ -9895,6 +9896,8 @@ VixToolsListAuthAliases(VixCommandRequestHeader *requestMsg, // IN Log("%s: ListAuth list results too large, truncating", __FUNCTION__); goto abort; } + free(recordBuf); + recordBuf = NULL; } *result = resultBuffer; @@ -9960,7 +9963,6 @@ VixToolsListMappedAliases(VixCommandRequestHeader *requestMsg, // IN char *destPtr; char *endDestPtr; char *tmpBuf = NULL; - char *recordBuf; char *escapedStr = NULL; char *escapedStr2 = NULL; size_t recordSize; @@ -10014,6 +10016,8 @@ VixToolsListMappedAliases(VixCommandRequestHeader *requestMsg, // IN destPtr += Str_Sprintf(destPtr, endDestPtr - destPtr, "%s", VIX_XML_ESCAPED_TAG); for (i = 0; i < num; i++) { + char *recordBuf = NULL; + escapedStr = VixToolsEscapeXMLString(maList[i].pemCert); if (escapedStr == NULL) { err = VIX_E_OUT_OF_MEMORY; @@ -10085,6 +10089,8 @@ VixToolsListMappedAliases(VixCommandRequestHeader *requestMsg, // IN Log("%s: ListMapped results too large, truncating", __FUNCTION__); goto abort; } + free(recordBuf); + recordBuf = NULL; } *result = resultBuffer;