int mb_mod_count = 0;
do {
+ if (mb_mod_info + 16 > mb_mod_cmdline) {
+ printf("WARNING: Too many modules loaded, aborting.\n");
+ break;
+ }
next_initrd = strchr(initrd_filename, ',');
if (next_initrd)
*next_initrd = '\0';
initrd_filename);
stl_p(bootinfo + mb_mod_info + 8, mb_bootinfo + mb_mod_cmdline); /* string */
mb_mod_cmdline += strlen(initrd_filename) + 1;
- if (mb_mod_cmdline > sizeof(bootinfo))
+ if (mb_mod_cmdline > sizeof(bootinfo)) {
mb_mod_cmdline = sizeof(bootinfo);
+ printf("WARNING: Too many module cmdlines loaded, aborting.\n");
+ break;
+ }
if ((next_space = strchr(initrd_filename, ' ')))
*next_space = '\0';
#ifdef DEBUG_MULTIBOOT