[PATCH] regedit: Stop parsing REG_SZ values containing NUL character sequences
Hugh McMaster
hugh.mcmaster at outlook.com
Fri Mar 12 05:27:33 CST 2021
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
programs/regedit/regproc.c | 3 +--
programs/regedit/tests/regedit.c | 24 ++++++++++++------------
2 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 727f39f6158..5bb991865e6 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -402,8 +402,7 @@ static BOOL REGPROC_unescape_string(WCHAR *str, WCHAR **unparsed)
str[val_idx] = '\r';
break;
case '0':
- str[val_idx] = '\0';
- break;
+ return FALSE;
case '\\':
case '"':
str[val_idx] = str[str_idx];
diff --git a/programs/regedit/tests/regedit.c b/programs/regedit/tests/regedit.c
index 9b431fa6f38..7d2c9416bcc 100644
--- a/programs/regedit/tests/regedit.c
+++ b/programs/regedit/tests/regedit.c
@@ -1694,12 +1694,12 @@ static void test_invalid_import(void)
"\"Wine33d\"=\"Value2\\0\\0\\0\\0\"\n"
"\"Wine33e\"=\"Value3\\0Value4\"\n"
"\"Wine33f\"=\"\\0Value5\"\n\n");
- todo_wine verify_reg_nonexist(hkey, "Wine33a");
- todo_wine verify_reg_nonexist(hkey, "Wine33b");
- todo_wine verify_reg_nonexist(hkey, "Wine33c");
- todo_wine verify_reg_nonexist(hkey, "Wine33d");
- todo_wine verify_reg_nonexist(hkey, "Wine33e");
- todo_wine verify_reg_nonexist(hkey, "Wine33f");
+ verify_reg_nonexist(hkey, "Wine33a");
+ verify_reg_nonexist(hkey, "Wine33b");
+ verify_reg_nonexist(hkey, "Wine33c");
+ verify_reg_nonexist(hkey, "Wine33d");
+ verify_reg_nonexist(hkey, "Wine33e");
+ verify_reg_nonexist(hkey, "Wine33f");
close_key(hkey);
@@ -2205,12 +2205,12 @@ static void test_invalid_import_unicode(void)
"\"Wine33d\"=\"Value2\\0\\0\\0\\0\"\n"
"\"Wine33e\"=\"Value3\\0Value4\"\n"
"\"Wine33f\"=\"\\0Value5\"\n\n");
- todo_wine verify_reg_nonexist(hkey, "Wine33a");
- todo_wine verify_reg_nonexist(hkey, "Wine33b");
- todo_wine verify_reg_nonexist(hkey, "Wine33c");
- todo_wine verify_reg_nonexist(hkey, "Wine33d");
- todo_wine verify_reg_nonexist(hkey, "Wine33e");
- todo_wine verify_reg_nonexist(hkey, "Wine33f");
+ verify_reg_nonexist(hkey, "Wine33a");
+ verify_reg_nonexist(hkey, "Wine33b");
+ verify_reg_nonexist(hkey, "Wine33c");
+ verify_reg_nonexist(hkey, "Wine33d");
+ verify_reg_nonexist(hkey, "Wine33e");
+ verify_reg_nonexist(hkey, "Wine33f");
close_key(hkey);
--
2.30.2
More information about the wine-devel
mailing list