disk/diskfilter: Don't make a RAID array with more than 1024 disks
This is "belt and braces" with commit 12e20a6a695f (disk/diskfilter: Check calloc() result for NULL): we end up trying to use too much memory in situations like corrupted Linux software RAID setups purporting to use a huge number of disks. Simply refuse to permit such configurations. 1024 is a bit arbitrary, yes, and I feel a bit like I'm tempting fate here, but I think 1024 disks in an array (that GRUB has to read to boot!) should be enough for anyone. Signed-off-by: Daniel Axtens <dja@axtens.net> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
93afdf8597
commit
2a5e3c1f2a
@ -1046,6 +1046,13 @@ grub_diskfilter_make_raid (grub_size_t uuidlen, char *uuid, int nmemb,
|
||||
struct grub_diskfilter_pv *pv;
|
||||
grub_err_t err;
|
||||
|
||||
/* We choose not to support more than 1024 disks. */
|
||||
if (nmemb < 1 || nmemb > 1024)
|
||||
{
|
||||
grub_free (uuid);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case 1:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user