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

This commit is contained in:
Mike McCormack 2006-07-24 20:34:05 +09:00 committed by Alexandre Julliard
parent bc673bff01
commit 9f89427291
1 changed files with 8 additions and 14 deletions

View File

@ -189,39 +189,33 @@ BOOL unsquash_guid(LPCWSTR in, LPWSTR out)
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;
}