]> xenbits.xensource.com Git - people/pauldu/xen.git/commitdiff
x86/badpage: Fix badpage->order overflow
authorAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 9 Nov 2018 13:46:27 +0000 (13:46 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 12 Nov 2018 19:02:00 +0000 (19:02 +0000)
For order 32 or more, the shift will truncate before the addition occurs.

Spotted by Coverity.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/common/page_alloc.c

index 1aec13e95f5f43dc10a93632436dca5321d0dff3..88d1637247ac8e47968b42cd3050b6e66ac289b4 100644 (file)
@@ -334,7 +334,7 @@ void __init init_boot_pages(paddr_t ps, paddr_t pe)
         for ( i = 0; i < array_size; i++ )
         {
             bootmem_region_zap(badpage->mfn,
-                               badpage->mfn + (1U << badpage->order));
+                               badpage->mfn + (1UL << badpage->order));
             badpage++;
         }
     }
@@ -347,7 +347,7 @@ void __init init_boot_pages(paddr_t ps, paddr_t pe)
             for ( i = 0; i < array_size; i++ )
             {
                 bootmem_region_zap(badpage->mfn,
-                                   badpage->mfn + (1U << badpage->order));
+                                   badpage->mfn + (1UL << badpage->order));
                 badpage++;
             }
         }