fs/cpio_common: Add a sanity check on namesize.

Found by: Coverity scan.
This commit is contained in:
Vladimir Serbinenko 2015-01-25 00:11:59 +01:00
parent b6f21bcb98
commit faad548ce3

View file

@ -61,6 +61,14 @@ grub_cpio_find_file (struct grub_archelp_data *data, char **name,
modeval = read_number (hd.mode, ARRAY_SIZE (hd.mode));
namesize = read_number (hd.namesize, ARRAY_SIZE (hd.namesize));
/* Don't allow negative numbers. */
if (namesize >= 0x80000000)
{
/* Probably a corruption, don't attempt to recover. */
*mode = GRUB_ARCHELP_ATTR_END;
return GRUB_ERR_NONE;
}
if (mode)
*mode = modeval;