From: Vladimir 'phcoder' Serbinenko Date: Sat, 14 Jan 2012 10:42:52 +0000 (+0100) Subject: * grub-core/disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Skip X-Git-Tag: 2.00~798 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=280d9d3e3e3dd4527f6d78d6eae314c957cd688a;p=thirdparty%2Fgrub.git * grub-core/disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Skip disks with unknown size. * grub-core/disk/raid.c (scan_devices): Allow disks with unknown sizes. --- diff --git a/grub-core/loader/ia64/efi/linux.c b/grub-core/loader/ia64/efi/linux.c index 28958ae57..27dadc696 100644 --- a/grub-core/loader/ia64/efi/linux.c +++ b/grub-core/loader/ia64/efi/linux.c @@ -618,7 +618,6 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), } grub_printf ("\n"); - initrd_size = grub_file_size (file); initrd_pages = (page_align (initrd_size) >> 12); initrd_mem = grub_efi_allocate_pages (0, initrd_pages); if (! initrd_mem) diff --git a/grub-core/loader/mips/linux.c b/grub-core/loader/mips/linux.c index f75f58c4f..7fda817af 100644 --- a/grub-core/loader/mips/linux.c +++ b/grub-core/loader/mips/linux.c @@ -478,10 +478,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), GRUB_RELOCATOR_PREFERENCE_NONE); if (err) - { - grub_file_close (file); - return err; - } + goto fail; initrd_src = get_virtual_current_address (ch); initrd_dest = get_physical_target_address (ch) | 0x80000000; } @@ -507,10 +504,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), " rd_size=0x%" PRIxGRUB_ADDR, params, initrd_dest, size); if (!tmp) - { - grub_file_close (file); - return grub_errno; - } + goto fail; grub_free (params); params = tmp; } @@ -532,9 +526,12 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), initrd_loaded = 1; - grub_file_close (file); + fail: + for (i = 0; i < nfiles; i++) + grub_file_close (files[i]); + grub_free (files); - return GRUB_ERR_NONE; + return grub_errno; } static grub_command_t cmd_linux, cmd_initrd; diff --git a/grub-core/loader/powerpc/ieee1275/linux.c b/grub-core/loader/powerpc/ieee1275/linux.c index 3308c9c92..b0af5f75d 100644 --- a/grub-core/loader/powerpc/ieee1275/linux.c +++ b/grub-core/loader/powerpc/ieee1275/linux.c @@ -380,8 +380,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), initrd_size = size; fail: - if (file) - grub_file_close (file); + for (i = 0; i < nfiles; i++) + grub_file_close (files[i]); + grub_free (files); return grub_errno; } diff --git a/grub-core/loader/sparc64/ieee1275/linux.c b/grub-core/loader/sparc64/ieee1275/linux.c index 697677ef7..7b68f38b0 100644 --- a/grub-core/loader/sparc64/ieee1275/linux.c +++ b/grub-core/loader/sparc64/ieee1275/linux.c @@ -445,8 +445,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), initrd_size = size; fail: - if (file) - grub_file_close (file); + for (i = 0; i < nfiles; i++) + grub_file_close (files[i]); + grub_free (files); return grub_errno; }