Mike McCormack : msi: Use CLSIDFromString to make squash_guid a bit more robust.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jul 24 13:15:08 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 9f89427291d54b94e3e390aea5f48504774a4f0d
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=9f89427291d54b94e3e390aea5f48504774a4f0d

Author: Mike McCormack <mike at codeweavers.com>
Date:   Mon Jul 24 20:34:05 2006 +0900

msi: Use CLSIDFromString to make squash_guid a bit more robust.

---

 dlls/msi/registry.c |   22 ++++++++--------------
 1 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/dlls/msi/registry.c b/dlls/msi/registry.c
index fe51ae7..e9c33f1 100644
--- a/dlls/msi/registry.c
+++ b/dlls/msi/registry.c
@@ -189,39 +189,33 @@ BOOL unsquash_guid(LPCWSTR in, LPWSTR ou
 
 BOOL squash_guid(LPCWSTR in, LPWSTR out)
 {
-    DWORD i,n=0;
+    DWORD i,n=1;
+    GUID guid;
 
-    if(in[n++] != '{')
+    if (FAILED(CLSIDFromString((LPOLESTR)in, &guid)))
         return FALSE;
+
     for(i=0; i<8; i++)
         out[7-i] = in[n++];
-    if(in[n++] != '-')
-        return FALSE;
+    n++;
     for(i=0; i<4; i++)
         out[11-i] = in[n++];
-    if(in[n++] != '-')
-        return FALSE;
+    n++;
     for(i=0; i<4; i++)
         out[15-i] = in[n++];
-    if(in[n++] != '-')
-        return FALSE;
+    n++;
     for(i=0; i<2; i++)
     {
         out[17+i*2] = in[n++];
         out[16+i*2] = in[n++];
     }
-    if(in[n++] != '-')
-        return FALSE;
+    n++;
     for( ; i<8; i++)
     {
         out[17+i*2] = in[n++];
         out[16+i*2] = in[n++];
     }
     out[32]=0;
-    if(in[n++] != '}')
-        return FALSE;
-    if(in[n])
-        return FALSE;
     return TRUE;
 }
 




More information about the wine-cvs mailing list