* grub-core/loader/multiboot.c (grub_cmd_module): Don't attempt to
allocate space for zero-sized modules.
This commit is contained in:
parent
954f7bf5ec
commit
cb3c4a4722
2 changed files with 13 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-10-28 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/loader/multiboot.c (grub_cmd_module): Don't attempt to
|
||||
allocate space for zero-sized modules.
|
||||
|
||||
2013-10-28 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/loader/xnu_resume.c (grub_xnu_resume): Reject empty images.
|
||||
|
|
|
@ -316,6 +316,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)),
|
|||
return grub_errno;
|
||||
|
||||
size = grub_file_size (file);
|
||||
if (size)
|
||||
{
|
||||
grub_relocator_chunk_t ch;
|
||||
err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch,
|
||||
|
@ -330,6 +331,11 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)),
|
|||
module = get_virtual_current_address (ch);
|
||||
target = get_physical_target_address (ch);
|
||||
}
|
||||
else
|
||||
{
|
||||
module = 0;
|
||||
target = 0;
|
||||
}
|
||||
|
||||
err = grub_multiboot_add_module (target, size, argc - 1, argv + 1);
|
||||
if (err)
|
||||
|
@ -338,7 +344,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)),
|
|||
return err;
|
||||
}
|
||||
|
||||
if (grub_file_read (file, module, size) != size)
|
||||
if (size && grub_file_read (file, module, size) != size)
|
||||
{
|
||||
grub_file_close (file);
|
||||
if (!grub_errno)
|
||||
|
@ -348,7 +354,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)),
|
|||
}
|
||||
|
||||
grub_file_close (file);
|
||||
return GRUB_ERR_NONE;;
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
static grub_command_t cmd_multiboot, cmd_module;
|
||||
|
|
Loading…
Reference in a new issue