]> xenbits.xensource.com Git - pvdrivers/win/xenvif.git/commitdiff
Fix potential buffer overflow
authorPaul Durrant <paul.durrant@citrix.com>
Tue, 14 Jul 2015 10:55:57 +0000 (11:55 +0100)
committerPaul Durrant <paul.durrant@citrix.com>
Tue, 14 Jul 2015 10:55:57 +0000 (11:55 +0100)
The buffer allocation in FdoQueryDeviceRelations() is completely bogus. Fix
it.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
src/xenvif/fdo.c

index b903b091623f5987c2cb041bccbe584ad3038977..aabc9c12318a3170837e741a4efce348019c1da1 100644 (file)
@@ -1632,7 +1632,7 @@ FdoQueryDeviceRelations(
          ListEntry = ListEntry->Flink)
         Count++;
 
-    Size = FIELD_OFFSET(DEVICE_RELATIONS, Objects) + (sizeof (DEVICE_OBJECT) * __min(Count, 1));
+    Size = FIELD_OFFSET(DEVICE_RELATIONS, Objects) + (sizeof (PDEVICE_OBJECT) * __max(Count, 1));
 
     Relations = ExAllocatePoolWithTag(PagedPool, Size, 'FIV');