Commit 38a79799 authored by Alexandre Julliard's avatar Alexandre Julliard

oleaut32: Reallocate in BSTR_UserUnmarshal to avoid changing the pointer if the…

oleaut32: Reallocate in BSTR_UserUnmarshal to avoid changing the pointer if the string didn't change.
parent bf202cfd
......@@ -167,11 +167,12 @@ unsigned char * WINAPI BSTR_UserUnmarshal(ULONG *pFlags, unsigned char *Buffer,
if(header->len != header->len2)
FIXME("len %08x != len2 %08x\n", header->len, header->len2);
SysFreeString(*pstr);
*pstr = NULL;
if(header->byte_len != 0xffffffff)
*pstr = SysAllocStringByteLen((char*)(header + 1), header->byte_len);
if (header->byte_len == 0xffffffff)
{
SysFreeString(*pstr);
*pstr = NULL;
}
else SysReAllocStringLen( pstr, (OLECHAR *)(header + 1), header->len );
if (*pstr) TRACE("string=%s\n", debugstr_w(*pstr));
return Buffer + sizeof(*header) + sizeof(OLECHAR) * header->len;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment