]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
vtd: During parsing DMAR table, if find RMRR is incorrect, return error.
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 25 Jul 2008 13:04:17 +0000 (14:04 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 25 Jul 2008 13:04:17 +0000 (14:04 +0100)
Signed-off-by: Weidong Han <weidong.han@intel.com>
xen-unstable changeset: 18114:ba6be1571cc628298c5a0666f261b660fdcaeac0
xen-unstable date: Wed Jul 23 09:58:48 2008 +0100

xen/arch/x86/hvm/vmx/vtd/dmar.c

index a13c2db5644c1cd6f86d6214d704edf3e70bf5e9..2632e3cf6f1c75b24bf19d7c3d2fe2f9042b8334 100644 (file)
@@ -436,6 +436,12 @@ acpi_parse_one_rmrr(struct acpi_dmar_entry_header *header)
     struct acpi_rmrr_unit *rmrru;
     int ret = 0;
 
+    if ( rmrr->base_address >= rmrr->end_address )
+    {
+        dprintk(XENLOG_ERR VTDPREFIX, "RMRR is incorrect.\n");
+        return -EFAULT;
+    }
+
     rmrru = xmalloc(struct acpi_rmrr_unit);
     if ( !rmrru )
         return -ENOMEM;