Allow hex values not ending with comma

Andre Wisplinghoff andre at myhost.localdomain
Thu Jan 3 17:42:24 CST 2008


---
 programs/regedit/regproc.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index fe5323e..b31e41d 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -93,6 +93,7 @@ static BYTE* convertHexCSVToHex(char *str, DWORD *size)
     while (*s != '\0') {
         UINT wc;
         char dummy;
+        BOOL error;
 
         if (s[1] != ',' && s[1] != '\0' && s[2] != ',' && s[2] != '\0') {
             fprintf(stderr,"%s: ERROR converting CSV hex stream. Invalid sequence at '%s'\n",
@@ -100,7 +101,11 @@ static BYTE* convertHexCSVToHex(char *str, DWORD *size)
             HeapFree(GetProcessHeap(), 0, data);
             return NULL;
         }
-        if (sscanf(s, "%x%c", &wc, &dummy) < 1 || dummy != ',') {
+        if(strlen(s)>2)
+            error=(sscanf(s, "%x%c", &wc, &dummy) < 1 || dummy != ',');
+        else
+            error=(sscanf(s, "%x", &wc) < 1);
+        if(error) {
             fprintf(stderr,"%s: ERROR converting CSV hex stream. Invalid value at '%s'\n",
                     getAppName(), s);
             HeapFree(GetProcessHeap(), 0, data);
-- 
1.5.3.7


--------------080708000805060705010006--



More information about the wine-patches mailing list