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