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