Massimo wrote: >Resubmitting as for Tony Lambregts request :) > >Well, finally found and corrected a bug that made AutoCAD R14 hang... >I guess some other apps could have the same problem solved, but >had no time to test more :) > >In RegEnumValueA, when the size for requested data buffer is too small, >function should return an error (as it does), but also return correct >buffer size (as it doesn't). >Found in AutoCAD; it asked for a reistry key value, got error, and then >looped forever trying to get val with wrong buffer size. > >I guess, but had no time yet to check, that this problem could happen >somwhere else in Registry.c, I'll check it out next days. > >With this patch, finally AutoCAD R14 is perfectly usable in wine, even without >a native windows installed ! > >Change log: Change In RegEnumValueA, when the size for requested data >buffer is too small, function should return an error (as it did), and >also return correct buffer size (now it does). > > >Max [EMAIL PROTECTED] [reversed :) ] >----- > > > > > >------------------------------------------------------------------------ > >--- dlls/advapi32/registry.c Sat Jul 6 01:29:08 2002 >+++ /home/massimo/wine-patches/registry.c Sat Jul 6 01:35:32 2002 >@@ -1157,6 +1157,9 @@ > RtlUnicodeToMultiByteSize( &len, info->Name, info->NameLength ); > if (len >= *val_count) > { >+ /* MUST RETURN REQUESTED CORRECT BUFFER SIZE, NOT ONLY TELL IT'S >WRONG */ >+ *val_count = len + 1 ; > status = STATUS_BUFFER_OVERFLOW; > goto done; > } >@@ -1174,6 +1177,9 @@ > { > if (len > *count) > { >+ /* MUST RETURN REQUESTED CORRECT BUFFER SIZE, NOT ONLY TELL IT'S >WRONG */ >+ *count = len+1 ; > status = STATUS_BUFFER_OVERFLOW; > goto done; > } > > It looks great to me. Please submit it to wine patches.
Tony Lambregts