grub_cmd_play: Avoid division by zero.
This commit is contained in:
parent
30e177a05b
commit
44461d5af2
2 changed files with 20 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-01-20 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/commands/i386/pc/play.c (grub_cmd_play): Avoid
|
||||
division by zero.
|
||||
|
||||
2015-01-20 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/bus/usb/usbtrans.c (grub_usb_bulk_maxpacket): Avoid
|
||||
|
|
|
@ -107,6 +107,14 @@ grub_cmd_play (grub_command_t cmd __attribute__ ((unused)),
|
|||
return grub_errno;
|
||||
}
|
||||
|
||||
if (!tempo)
|
||||
{
|
||||
grub_file_close (file);
|
||||
grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Invalid tempo in %s"),
|
||||
args[0]);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
tempo = grub_le_to_cpu32 (tempo);
|
||||
grub_dprintf ("play","tempo = %d\n", tempo);
|
||||
|
||||
|
@ -131,6 +139,13 @@ grub_cmd_play (grub_command_t cmd __attribute__ ((unused)),
|
|||
|
||||
tempo = grub_strtoul (args[0], &end, 0);
|
||||
|
||||
if (!tempo)
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Invalid tempo in %s"),
|
||||
args[0]);
|
||||
return grub_errno;
|
||||
}
|
||||
|
||||
if (*end)
|
||||
/* Was not a number either, assume it was supposed to be a file name. */
|
||||
return grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("file `%s' not found"), args[0]);
|
||||
|
|
Loading…
Reference in a new issue