Author: cgutman Date: Wed Jun 9 21:53:42 2010 New Revision: 47725
URL: http://svn.reactos.org/svn/reactos?rev=47725&view=rev Log: [NTOSKRNL] - Set the resource list pointer to NULL after we free it - Fixes a double-free issue in the resource conflict resolution code
Modified: trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c
Modified: trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c... ============================================================================== --- trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c [iso-8859-1] Wed Jun 9 21:53:42 2010 @@ -243,6 +243,7 @@ if (ReqDesc->Option == 0) { ExFreePool(*ResourceList); + *ResourceList = NULL; return STATUS_CONFLICTING_ADDRESSES; } } @@ -258,6 +259,7 @@ if (ReqDesc->Option == 0) { ExFreePool(*ResourceList); + *ResourceList = NULL; return STATUS_CONFLICTING_ADDRESSES; } } @@ -273,6 +275,7 @@ if (ReqDesc->Option == 0) { ExFreePool(*ResourceList); + *ResourceList = NULL; return STATUS_CONFLICTING_ADDRESSES; } } @@ -288,6 +291,7 @@ if (ReqDesc->Option == 0) { ExFreePool(*ResourceList); + *ResourceList = NULL; return STATUS_CONFLICTING_ADDRESSES; } } @@ -302,6 +306,7 @@ if (ReqDesc->Option == 0) { ExFreePool(*ResourceList); + *ResourceList = NULL; return STATUS_CONFLICTING_ADDRESSES; } } @@ -852,6 +857,7 @@ { DPRINT1("Boot resources for %wZ cause a resource conflict!\n", &DeviceNode->InstancePath); ExFreePool(DeviceNode->ResourceList); + DeviceNode->ResourceList = NULL; } }