RegEnumKeyA
Aric Stewart
aric at codeweavers.com
Thu Jan 31 10:41:41 CST 2002
It is possible to be given a class return buffer of NULL but given a
class return buffer size ptr (which is 0) so we cannot use the existence
of the class return buffer size ptr existence to determine if we are to
return the class in the class buffer.
-aric
-------------- next part --------------
Index: dlls/advapi32/registry.c
===================================================================
RCS file: /home/wine/wine/dlls/advapi32/registry.c,v
retrieving revision 1.30
diff -u -u -r1.30 registry.c
--- dlls/advapi32/registry.c 2001/12/05 22:18:48 1.30
+++ dlls/advapi32/registry.c 2002/01/31 14:38:07
@@ -348,18 +348,18 @@
DWORD len, cls_len;
RtlUnicodeToMultiByteSize( &len, info->Name, info->NameLength );
- RtlUnicodeToMultiByteSize( &cls_len, (WCHAR *)(buf_ptr + info->ClassOffset),
- info->ClassLength );
+ RtlUnicodeToMultiByteSize( &cls_len, (WCHAR *)(buf_ptr +
+ info->ClassOffset), info->ClassLength );
if (ft) *ft = *(FILETIME *)&info->LastWriteTime;
- if (len >= *name_len || (class_len && (cls_len >= *class_len)))
+ if (len >= *name_len || (class && class_len && (cls_len >= *class_len)))
status = STATUS_BUFFER_OVERFLOW;
else
{
*name_len = len;
RtlUnicodeToMultiByteN( name, len, NULL, info->Name, info->NameLength );
name[len] = 0;
- if (class_len)
+ if (class && class_len)
{
*class_len = cls_len;
if (class)
More information about the wine-patches
mailing list