Hugh McMaster : regedit: Stop exporting REG_SZ data at the first NUL character.

Alexandre Julliard julliard at winehq.org
Thu Sep 13 03:49:15 CDT 2018


Module: wine
Branch: stable
Commit: ba4fcd0921cc973325e9116872bfaff9e686af23
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ba4fcd0921cc973325e9116872bfaff9e686af23

Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date:   Mon May  7 23:50:42 2018 +0000

regedit: Stop exporting REG_SZ data at the first NUL character.

Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 62027322b05d3e0d72b2905a171e21becaf355d6)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

---

 programs/regedit/regproc.c       | 11 ++++++-----
 programs/regedit/tests/regedit.c |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 0911b50..5866ad0 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -1179,7 +1179,10 @@ static WCHAR *REGPROC_escape_string(WCHAR *str, size_t str_len, size_t *line_len
     for (i = 0, escape_count = 0; i < str_len; i++)
     {
         WCHAR c = str[i];
-        if (c == '\r' || c == '\n' || c == '\\' || c == '"' || c == '\0')
+
+        if (!c) break;
+
+        if (c == '\r' || c == '\n' || c == '\\' || c == '"')
             escape_count++;
     }
 
@@ -1189,6 +1192,8 @@ static WCHAR *REGPROC_escape_string(WCHAR *str, size_t str_len, size_t *line_len
     {
         WCHAR c = str[i];
 
+        if (!c) break;
+
         switch (c)
         {
         case '\r':
@@ -1207,10 +1212,6 @@ static WCHAR *REGPROC_escape_string(WCHAR *str, size_t str_len, size_t *line_len
             buf[pos++] = '\\';
             buf[pos] = '"';
             break;
-        case '\0':
-            buf[pos++] = '\\';
-            buf[pos] = '0';
-            break;
         default:
             buf[pos] = c;
         }
diff --git a/programs/regedit/tests/regedit.c b/programs/regedit/tests/regedit.c
index 41712a1..2ac942a 100644
--- a/programs/regedit/tests/regedit.c
+++ b/programs/regedit/tests/regedit.c
@@ -3688,7 +3688,7 @@ static void test_export(void)
     RegCloseKey(hkey);
 
     run_regedit_exe("regedit.exe /e file.reg HKEY_CURRENT_USER\\" KEY_BASE);
-    ok(compare_export("file.reg", embedded_null_test, TODO_REG_COMPARE), "compare_export() failed\n");
+    ok(compare_export("file.reg", embedded_null_test, 0), "compare_export() failed\n");
 
     delete_key(HKEY_CURRENT_USER, KEY_BASE);
 }




More information about the wine-cvs mailing list