don't crash on setupapi stringtable winetest

svn path=/trunk/; revision=40561
This commit is contained in:
Christoph von Wittich 2009-04-17 19:37:13 +00:00
parent f8cbb14378
commit c116c45760

View file

@ -607,13 +607,14 @@ StringTableLookUpStringEx(HSTRING_TABLE hStringTable,
PSTRING_TABLE pStringTable; PSTRING_TABLE pStringTable;
DWORD i; DWORD i;
TRACE("%p %s %lx\n", (PVOID)hStringTable, debugstr_w(lpString), dwFlags); TRACE("%p %s %x %p, %x\n", hStringTable, debugstr_w(lpString), dwFlags,
lpExtraData, lpReserved);
pStringTable = (PSTRING_TABLE)hStringTable; pStringTable = (PSTRING_TABLE)hStringTable;
if (pStringTable == NULL) if (pStringTable == NULL)
{ {
ERR("Invalid hStringTable!\n"); ERR("Invalid hStringTable!\n");
return (DWORD)-1; return ~0u;
} }
/* Search for existing string in the string table */ /* Search for existing string in the string table */
@ -625,10 +626,12 @@ StringTableLookUpStringEx(HSTRING_TABLE hStringTable,
{ {
if (!lstrcmpW(pStringTable->pSlots[i].pString, lpString)) if (!lstrcmpW(pStringTable->pSlots[i].pString, lpString))
{ {
memcpy(lpExtraData, if (lpExtraData)
pStringTable->pSlots[i].pData, {
pStringTable->pSlots[i].dwSize); memcpy(lpExtraData,
*lpReserved = 0; pStringTable->pSlots[i].pData,
pStringTable->pSlots[i].dwSize);
}
return i + 1; return i + 1;
} }
} }
@ -636,10 +639,12 @@ StringTableLookUpStringEx(HSTRING_TABLE hStringTable,
{ {
if (!lstrcmpiW(pStringTable->pSlots[i].pString, lpString)) if (!lstrcmpiW(pStringTable->pSlots[i].pString, lpString))
{ {
memcpy(lpExtraData, if (lpExtraData)
pStringTable->pSlots[i].pData, {
pStringTable->pSlots[i].dwSize); memcpy(lpExtraData,
*lpReserved = 0; pStringTable->pSlots[i].pData,
pStringTable->pSlots[i].dwSize);
}
return i + 1; return i + 1;
} }
} }