[PATCH] reg: Stop exporting REG_SZ data at the first NUL character

Hugh McMaster hugh.mcmaster at outlook.com
Mon May 7 07:39:07 CDT 2018


Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 programs/reg/export.c    | 11 ++++++-----
 programs/reg/tests/reg.c |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/programs/reg/export.c b/programs/reg/export.c
index 622e7ca8d9..8b08da1299 100644
--- a/programs/reg/export.c
+++ b/programs/reg/export.c
@@ -39,7 +39,10 @@ static WCHAR *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++;
     }
 
@@ -49,6 +52,8 @@ static WCHAR *escape_string(WCHAR *str, size_t str_len, size_t *line_len)
     {
         WCHAR c = str[i];
 
+        if (!c) break;
+
         switch (c)
         {
         case '\r':
@@ -67,10 +72,6 @@ static WCHAR *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/reg/tests/reg.c b/programs/reg/tests/reg.c
index aba71b7b87..ea4e128da5 100644
--- a/programs/reg/tests/reg.c
+++ b/programs/reg/tests/reg.c
@@ -4679,7 +4679,7 @@ static void test_export(void)
 
     run_reg_exe("reg export HKEY_CURRENT_USER\\" KEY_BASE " file.reg", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
-    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);
 }
-- 
2.17.0




More information about the wine-devel mailing list