[ros-diffs] [cgutman] 53261: [NTOSKRNL] - Fix a bug in IopCreateResourceListFromRequirements which was triggering a sanity ASSERT because it forgot to skip conflicting entries

cgutman at svn.reactos.org cgutman at svn.reactos.org
Mon Aug 15 08:29:23 UTC 2011


Author: cgutman
Date: Mon Aug 15 08:29:22 2011
New Revision: 53261

URL: http://svn.reactos.org/svn/reactos?rev=53261&view=rev
Log:
[NTOSKRNL]
- Fix a bug in IopCreateResourceListFromRequirements which was triggering a sanity ASSERT because it forgot to skip conflicting entries

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?rev=53261&r1=53260&r2=53261&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/pnpmgr/pnpres.c [iso-8859-1] Mon Aug 15 08:29:22 2011
@@ -217,6 +217,7 @@
       for (ii = 0; ii < ResList->Count; ii++)
       {
          PIO_RESOURCE_DESCRIPTOR ReqDesc = &ResList->Descriptors[ii];
+         BOOLEAN FoundResource = TRUE;
 
          /* FIXME: Handle alternate ranges */
          if (ReqDesc->Option == IO_RESOURCE_ALTERNATIVE)
@@ -240,6 +241,8 @@
                       *ResourceList = NULL;
                       return STATUS_CONFLICTING_ADDRESSES;
                   }
+
+                  FoundResource = FALSE;
               }
               break;
 
@@ -256,6 +259,8 @@
                       *ResourceList = NULL;
                       return STATUS_CONFLICTING_ADDRESSES;
                   }
+
+                  FoundResource = FALSE;
               }
               break;
 
@@ -272,6 +277,8 @@
                       *ResourceList = NULL;
                       return STATUS_CONFLICTING_ADDRESSES;
                   }
+
+                  FoundResource = FALSE;
               }
               break;
 
@@ -288,6 +295,8 @@
                       *ResourceList = NULL;
                       return STATUS_CONFLICTING_ADDRESSES;
                   }
+
+                  FoundResource = FALSE;
               }
               break;
 
@@ -303,16 +312,22 @@
                       *ResourceList = NULL;
                       return STATUS_CONFLICTING_ADDRESSES;
                   }
+
+                  FoundResource = FALSE;
               }
               break;
 
             default:
               DPRINT1("Unsupported resource type: %x\n", ReqDesc->Type);
+              FoundResource = FALSE;
               break;
          }
 
-         (*ResourceList)->List[0].PartialResourceList.Count++;
-         ResDesc++;
+         if (FoundResource)
+         {
+             (*ResourceList)->List[0].PartialResourceList.Count++;
+             ResDesc++;
+         }
       }
    }
 




More information about the Ros-diffs mailing list