regedit: Stop exporting REG_SZ data at the first NUL character.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
794d30dca6
commit
62027322b0
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue