Alexandre Julliard : regedit: Fix editing and exporting of zero-size strings.
Alexandre Julliard
julliard at winehq.org
Tue May 13 14:10:37 CDT 2008
Module: wine
Branch: master
Commit: e5685804471c7a600e5b775fb4676e095d62d2bb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e5685804471c7a600e5b775fb4676e095d62d2bb
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue May 13 20:27:11 2008 +0200
regedit: Fix editing and exporting of zero-size strings.
---
programs/regedit/edit.c | 4 ++--
programs/regedit/regproc.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/programs/regedit/edit.c b/programs/regedit/edit.c
index 31645a7..40a0834 100644
--- a/programs/regedit/edit.c
+++ b/programs/regedit/edit.c
@@ -224,7 +224,7 @@ static LPTSTR read_value(HWND hwnd, HKEY hKey, LPCTSTR valueName, DWORD *lpType,
goto done;
}
if ( *lpType == REG_DWORD ) valueDataLen = sizeof(DWORD);
- if (!(buffer = HeapAlloc(GetProcessHeap(), 0, valueDataLen))) {
+ if (!(buffer = HeapAlloc(GetProcessHeap(), 0, valueDataLen+1))) {
error(hwnd, IDS_TOO_BIG_VALUE, valueDataLen);
goto done;
}
@@ -233,7 +233,7 @@ static LPTSTR read_value(HWND hwnd, HKEY hKey, LPCTSTR valueName, DWORD *lpType,
error(hwnd, IDS_BAD_VALUE, valueName);
goto done;
}
-
+ buffer[valueDataLen] = 0;
if(len) *len = valueDataLen;
return buffer;
diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 85ab36b..b91cbf5 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -764,7 +764,7 @@ static void export_hkey(FILE *file, HKEY key,
case REG_SZ:
case REG_EXPAND_SZ:
fputs("\"", file);
- REGPROC_export_string(file, (char*) *val_buf);
+ if (val_size1) REGPROC_export_string(file, (char*) *val_buf);
fputs("\"\n", file);
break;
More information about the wine-cvs
mailing list