From 81a7aade60b2dd7811ac8134087d25de1760e892 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Sat, 27 Sep 2003 02:25:21 +0000 Subject: [PATCH] Fix some memory leaks found by smatch. --- programs/notepad/dialog.c | 1 + programs/regapi/regapi.c | 1 + programs/regtest/regtest.c | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/programs/notepad/dialog.c b/programs/notepad/dialog.c index a99465ff394..d6a6f4be463 100644 --- a/programs/notepad/dialog.c +++ b/programs/notepad/dialog.c @@ -491,6 +491,7 @@ VOID DIALOG_FilePrint(VOID) EndDoc(printer.hDC); DeleteDC(printer.hDC); + HeapFree(GetProcessHeap(), 0, pTemp); } VOID DIALOG_FilePrinterSetup(VOID) diff --git a/programs/regapi/regapi.c b/programs/regapi/regapi.c index e08c727e333..f57a3b07a61 100644 --- a/programs/regapi/regapi.c +++ b/programs/regapi/regapi.c @@ -736,6 +736,7 @@ static void processQueryValue(LPSTR cmdline) strncpy(lpsRes, lpsData, lLen); lpsRes[lLen-1]='\0'; } + HeapFree(GetProcessHeap(), 0, lpsData); } else { diff --git a/programs/regtest/regtest.c b/programs/regtest/regtest.c index 92e03921a20..d112208e2c3 100644 --- a/programs/regtest/regtest.c +++ b/programs/regtest/regtest.c @@ -228,6 +228,8 @@ void TestEnumKey() lSts = RegEnumKey(HKEY_CURRENT_USER,0,sVal,lVal); if (lSts != ERROR_MORE_DATA) xERROR(3,lSts); + + free(sVal); } /****************************************************************************** @@ -255,6 +257,9 @@ void TestEnumKeyEx() lSts = RegEnumKeyEx(HKEY_LOCAL_MACHINE,0,sVal,&lLen1,0,sClass,&lLen2,&ft); if (lSts != ERROR_MORE_DATA) xERROR(3,lSts); + + free(sVal); + free(sClass); } /****************************************************************************** @@ -288,6 +293,9 @@ void TestEnumValue() lSts = RegEnumValue(HKEY_LOCAL_MACHINE,1,sVal,&lVal,0,&lType,bVal,&lLen1); if (lSts != ERROR_NO_MORE_ITEMS) xERROR(5,lSts); + + free(sVal); + free(bVal); } /****************************************************************************** @@ -448,6 +456,8 @@ void TestQueryInfoKey() &lMaxSubLen,&lMaxClassLen,&lValues,&lMaxValNameLen, &lMaxValLen,&lSecDescLen, &ft); if (lSts != ERROR_SUCCESS) xERROR(2,lSts); + + free(sClass); } /****************************************************************************** @@ -473,6 +483,8 @@ void TestQueryValue() lSts = RegQueryValue(HKEY_CURRENT_USER,"",sVal,&lLen); if (lSts != ERROR_SUCCESS) xERROR(4,lSts); + + free(sVal); } /****************************************************************************** @@ -496,6 +508,8 @@ void TestQueryValueEx() lSts = RegQueryValueEx(HKEY_LOCAL_MACHINE,"",0,&lType,sVal,&lLen); if (lSts != ERROR_SUCCESS) xERROR(3,lSts); + + free(sVal); } /******************************************************************************