msi: Use CLSIDFromString to make squash_guid a bit more robust.
This commit is contained in:
parent
bc673bff01
commit
9f89427291
|
@ -189,39 +189,33 @@ BOOL unsquash_guid(LPCWSTR in, LPWSTR out)
|
||||||
|
|
||||||
BOOL squash_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;
|
return FALSE;
|
||||||
|
|
||||||
for(i=0; i<8; i++)
|
for(i=0; i<8; i++)
|
||||||
out[7-i] = in[n++];
|
out[7-i] = in[n++];
|
||||||
if(in[n++] != '-')
|
n++;
|
||||||
return FALSE;
|
|
||||||
for(i=0; i<4; i++)
|
for(i=0; i<4; i++)
|
||||||
out[11-i] = in[n++];
|
out[11-i] = in[n++];
|
||||||
if(in[n++] != '-')
|
n++;
|
||||||
return FALSE;
|
|
||||||
for(i=0; i<4; i++)
|
for(i=0; i<4; i++)
|
||||||
out[15-i] = in[n++];
|
out[15-i] = in[n++];
|
||||||
if(in[n++] != '-')
|
n++;
|
||||||
return FALSE;
|
|
||||||
for(i=0; i<2; i++)
|
for(i=0; i<2; i++)
|
||||||
{
|
{
|
||||||
out[17+i*2] = in[n++];
|
out[17+i*2] = in[n++];
|
||||||
out[16+i*2] = in[n++];
|
out[16+i*2] = in[n++];
|
||||||
}
|
}
|
||||||
if(in[n++] != '-')
|
n++;
|
||||||
return FALSE;
|
|
||||||
for( ; i<8; i++)
|
for( ; i<8; i++)
|
||||||
{
|
{
|
||||||
out[17+i*2] = in[n++];
|
out[17+i*2] = in[n++];
|
||||||
out[16+i*2] = in[n++];
|
out[16+i*2] = in[n++];
|
||||||
}
|
}
|
||||||
out[32]=0;
|
out[32]=0;
|
||||||
if(in[n++] != '}')
|
|
||||||
return FALSE;
|
|
||||||
if(in[n])
|
|
||||||
return FALSE;
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue