PCI hotplug: ibmphp: Add check to prevent reading beyond mapped area
[linux-2.6-microblaze.git] / drivers / pci / hotplug / ibmphp_ebda.c
index 5becbde..2850e64 100644 (file)
@@ -276,6 +276,12 @@ int __init ibmphp_access_ebda (void)
 
        for (;;) {
                offset = next_offset;
+
+               /* Make sure what we read is still in the mapped section */
+               if (WARN(offset > (ebda_sz * 1024 - 4),
+                        "ibmphp_ebda: next read is beyond ebda_sz\n"))
+                       break;
+
                next_offset = readw (io_mem + offset);  /* offset of next blk */
 
                offset += 2;