vmap: avoid hitting an ASSERT with vfree(NULL)
authorAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 21 May 2015 06:57:19 +0000 (08:57 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 21 May 2015 06:57:19 +0000 (08:57 +0200)
and unconditionally defer the vm_size() call, as it doesn't have a NULL
short circuit.

Reported-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Tested-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
xen/common/vmap.c

index 8752595cdbb406cebd5538a4c03a9b5a0a91df69..ac66a8c41bf0dd246736de16660f509078d01dca 100644 (file)
@@ -268,10 +268,14 @@ void *vzalloc(size_t size)
 
 void vfree(void *va)
 {
-    unsigned int i, pages = vm_size(va);
+    unsigned int i, pages;
     struct page_info *pg;
     PAGE_LIST_HEAD(pg_list);
 
+    if ( !va )
+        return;
+
+    pages = vm_size(va);
     ASSERT(pages);
 
     for ( i = 0; i < pages; i++ )