Hugh McMaster : regedit: Stop exporting REG_SZ data at the first NUL character.
Alexandre Julliard
julliard at winehq.org
Tue May 8 15:58:56 CDT 2018
Module: wine
Branch: master
Commit: 62027322b05d3e0d72b2905a171e21becaf355d6
URL: https://source.winehq.org/git/wine.git/?a=commit;h=62027322b05d3e0d72b2905a171e21becaf355d6
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>
---
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 84a16f9..65087c9 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -1171,7 +1171,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++;
}
@@ -1181,6 +1184,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':
@@ -1199,10 +1204,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 845ab00..66b9562 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