[PATCH] regedit: When processing 3.1 ignore any lines that don't begin with HKCR. (try 2)

Zebediah Figura z.figura12 at gmail.com
Tue Jan 31 00:41:19 CST 2017


v2: fix incorrect uses of memcmp

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 programs/regedit/regproc.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index c055c10..c7fca7a 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -616,8 +616,9 @@ static void processRegEntry31(WCHAR *line)
     int res;
 
     static WCHAR empty[] = {0};
+    static WCHAR hkcr[] = {'H','K','E','Y','_','C','L','A','S','S','E','S','_','R','O','O','T'};
 
-    if (line[0] == '\0') return;
+    if (strncmpW(line, hkcr, sizeof(hkcr) / sizeof(WCHAR))) return;
 
     /* get key name */
     while (line[key_end] && !isspaceW(line[key_end])) key_end++;
@@ -769,11 +770,11 @@ static void processRegLinesA(FILE *in, char* first_chars)
             *s_eol = '\0';
 
 	    /* Check if the line is a header string */
-	    if (!memcmp(line, header_31, sizeof(header_31))) {
+	    if (!strncmp(line, header_31, sizeof(header_31))) {
 		version = REG_VERSION_31;
-	    } else if (!memcmp(line, header_40, sizeof(header_40))) {
+	    } else if (!strncmp(line, header_40, sizeof(header_40))) {
 		version = REG_VERSION_40;
-	    } else if (!memcmp(line, header_50, sizeof(header_50))) {
+	    } else if (!strncmp(line, header_50, sizeof(header_50))) {
 		version = REG_VERSION_50;
 	    } else {
 		lineW = GetWideString(line);
-- 
2.7.4




More information about the wine-patches mailing list