Hugh McMaster : regedit: Stop exporting REG_SZ data at the first NUL character.
Module: wine Branch: master Commit: 62027322b05d3e0d72b2905a171e21becaf355d6 URL: https://source.winehq.org/git/wine.git/?a=commit;h=62027322b05d3e0d72b2905a1... Author: Hugh McMaster <hugh.mcmaster(a)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(a)outlook.com> Signed-off-by: Alexandre Julliard <julliard(a)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); }
participants (1)
-
Alexandre Julliard