[PATCH 3/3] regedit: Process the next file, if any, on error (v2)
Hugh McMaster
hugh.mcmaster at outlook.com
Tue Jul 5 04:13:35 CDT 2016
Changes since v1:
* Do not leak memory when moving to the next file.
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
programs/regedit/regedit.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/programs/regedit/regedit.c b/programs/regedit/regedit.c
index 04dd317..8a6a975 100644
--- a/programs/regedit/regedit.c
+++ b/programs/regedit/regedit.c
@@ -88,7 +88,7 @@ typedef enum {
ACTION_ADD, ACTION_EXPORT, ACTION_DELETE
} REGEDIT_ACTION;
-static BOOL PerformRegAction(REGEDIT_ACTION action, WCHAR **argv, int *i)
+static void PerformRegAction(REGEDIT_ACTION action, WCHAR **argv, int *i)
{
switch (action) {
case ACTION_ADD: {
@@ -113,7 +113,9 @@ static BOOL PerformRegAction(REGEDIT_ACTION action, WCHAR **argv, int *i)
if (size == 0)
{
output_message(STRING_FILE_NOT_FOUND, filename);
- exit(1);
+ if (realname)
+ HeapFree(GetProcessHeap(), 0, realname);
+ return;
}
reg_file = _wfopen(realname, rb_mode);
if (reg_file == NULL)
@@ -121,7 +123,9 @@ static BOOL PerformRegAction(REGEDIT_ACTION action, WCHAR **argv, int *i)
WCHAR regedit[] = {'r','e','g','e','d','i','t',0};
_wperror(regedit);
output_message(STRING_CANNOT_OPEN_FILE, filename);
- exit(1);
+ if (realname)
+ HeapFree(GetProcessHeap(), 0, realname);
+ return;
}
import_registry_file(reg_file);
if (realname)
@@ -150,7 +154,6 @@ static BOOL PerformRegAction(REGEDIT_ACTION action, WCHAR **argv, int *i)
exit(1);
break;
}
- return TRUE;
}
BOOL ProcessCmdLine(WCHAR *cmdline)
--
2.7.4
More information about the wine-patches
mailing list