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.…
==============================================================================
--- 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;
}
}