Registry patch

davep davep at cyw.uklinux.net
Tue Feb 13 12:20:31 CST 2001


On Tue, 13 Feb 2001, you wrote:
> davep <davep at cyw.uklinux.net> writes:
> 
> > RegQueryValue() & RegEnumValue()
> > 
> > We need to return the data length for REG_BINARY value types as well as strings
> > when called with a null buffer pointer.
> 
> I don't understand why you need that. We already return the data
> length in all cases, including REG_BINARY. Could you elaborate a bit
> on exactly what is going wrong?
>

The patch fixes a crash when starting Lotus 1-2-3 release 97 (part of the
SmartSuite 97 package). I've attached the offending registry keys.

123 calls RegQueryValueEx for the binary values with lpData set to NULL and
lpcbData non-NULL. RegQueryValueEx is supposed to return the size of the buffer
needed to hold the data, but Wine is returning the size of its initial buffer
(0xeb IIRC, sizeof(buffer)-sizeof(KEY_VALUE_PARTIAL_INFORMATION)). This causes
a crash when 123 immediately calls the same function again with a real buffer
address, presumably because 123 didn't allocate enough storage space.
-- 
Dave Pickles

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 123.reg.gz
Type: application/x-gzip
Size: 2621 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20010213/c3cda350/123.reg.bin


More information about the wine-devel mailing list