Преглед на файлове

load_image_targphys() should enforce the max size

load_image_targphys() gets passed a max size for the file, but doesn't
enforce it at all. Add a check and return -1 (error) if the file is
too big, without loading it.  Fix the bracing style in the function
while we're at it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
Benjamin Herrenschmidt преди 13 години
родител
ревизия
17df768c1e
променени са 1 файла, в които са добавени 5 реда и са изтрити 1 реда
  1. 5 1
      hw/loader.c

+ 5 - 1
hw/loader.c

@@ -108,8 +108,12 @@ int load_image_targphys(const char *filename,
     int size;
     int size;
 
 
     size = get_image_size(filename);
     size = get_image_size(filename);
-    if (size > 0)
+    if (size > max_sz) {
+        return -1;
+    }
+    if (size > 0) {
         rom_add_file_fixed(filename, addr, -1);
         rom_add_file_fixed(filename, addr, -1);
+    }
     return size;
     return size;
 }
 }