[PATCH 3/3] regedit: Simplify REG_SZ import parsing

Hugh McMaster hugh.mcmaster at outlook.com
Wed Apr 12 08:45:35 CDT 2017


Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 programs/regedit/regproc.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 4889915..65fd525 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -401,7 +401,7 @@ static BOOL validate_reg_sz_data(WCHAR *str)
         p = strchrW(++p, '"');
     if (!p) return FALSE;
 
-    end = ++p;
+    end = p++;
     while (*p == ' ' || *p == '\t') p++;
     if (*p && *p != ';') return FALSE;
 
@@ -442,11 +442,9 @@ static LONG setValue(WCHAR* val_name, WCHAR* val_data, BOOL is_unicode)
         if (!validate_reg_sz_data(val_data))
             return ERROR_INVALID_DATA;
         dwLen = REGPROC_unescape_string(val_data);
-        if(!dwLen || val_data[dwLen-1] != '"')
-            return ERROR_INVALID_DATA;
-        val_data[dwLen-1] = '\0'; /* remove last quotes */
-        lpbData = (BYTE*) val_data;
+        if (!dwLen) dwLen = 1; /* val_data is an empty string */
         dwLen = dwLen * sizeof(WCHAR); /* size is in bytes */
+        lpbData = (BYTE *)val_data;
     }
     else if (dwParseType == REG_DWORD)  /* Convert the dword types */
     {
-- 
2.7.4




More information about the wine-patches mailing list