Don't always return STATUS_BUFFER_TOO_SMALL when an error occurs in ZwQueryValueKey.

The "if" was triggered because ValueInformation->DataLength is 0xcdcdcdcd at the return of the function

svn path=/trunk/; revision=18442
This commit is contained in:
Hervé Poussineau 2005-10-14 13:04:11 +00:00
parent 23e3fa1b76
commit cce498f665

View file

@ -322,15 +322,18 @@ IoGetDeviceProperty(
*ResultLength = ValueInformation->DataLength;
ZwClose(KeyHandle);
if (ValueInformation->DataLength > BufferLength)
Status = STATUS_BUFFER_TOO_SMALL;
if (!NT_SUCCESS(Status))
{
ExFreePool(ValueInformation);
return Status;
}
if (ValueInformation->DataLength > BufferLength)
{
ExFreePool(ValueInformation);
return STATUS_BUFFER_TOO_SMALL;
}
/* FIXME: Verify the value (NULL-terminated, correct format). */
RtlCopyMemory(PropertyBuffer, ValueInformation->Data,