From 02c3f0fa12720e3962587014c8d825a20dd7106e Mon Sep 17 00:00:00 2001 From: Michael Martin Date: Tue, 27 Apr 2010 13:41:37 +0000 Subject: [PATCH] [ntoskrnl/io] - Check for null pointers before attempting to copy or free memory. svn path=/trunk/; revision=47049 --- reactos/ntoskrnl/io/iomgr/deviface.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/reactos/ntoskrnl/io/iomgr/deviface.c b/reactos/ntoskrnl/io/iomgr/deviface.c index 8a8db7a843f..7d97336cc16 100644 --- a/reactos/ntoskrnl/io/iomgr/deviface.c +++ b/reactos/ntoskrnl/io/iomgr/deviface.c @@ -884,7 +884,8 @@ IoGetDeviceInterfaces(IN CONST GUID *InterfaceClassGuid, NextReferenceString: ExFreePool(ReferenceBi); ReferenceBi = NULL; - ExFreePool(bip); + if (bip) + ExFreePool(bip); bip = NULL; if (ReferenceKey != INVALID_HANDLE_VALUE) { @@ -921,8 +922,11 @@ NextReferenceString: Status = STATUS_INSUFFICIENT_RESOURCES; goto cleanup; } - RtlCopyMemory(NewBuffer, ReturnBuffer.Buffer, ReturnBuffer.Length); - ExFreePool(ReturnBuffer.Buffer); + if (ReturnBuffer.Buffer) + { + RtlCopyMemory(NewBuffer, ReturnBuffer.Buffer, ReturnBuffer.Length); + ExFreePool(ReturnBuffer.Buffer); + } ReturnBuffer.Buffer = NewBuffer; } ReturnBuffer.Buffer[ReturnBuffer.Length / sizeof(WCHAR)] = UNICODE_NULL;