Follow-up Comment #1, bug #38800 (project grub): Some other random things discovered by the way:
0. grub-core/gdb_grub needs a correction for 64-bit pointers and data structures change: --- grub-core/gdb_grub.in +++ grub-core/gdb_grub.in @@ -22,7 +22,7 @@ printf "%s", $mod->name set $segment = $mod->segment while ($segment) - printf " %i 0x%x", $segment->section, $segment->addr + printf " %i 0x%lx", $segment->section, $segment->addr set $segment = $segment->next end printf "n" @@ -61,7 +61,7 @@ define load_all_modules set $this = grub_dl_head while ($this != 0) - dump_module_sections $this->mod + dump_module_sections $this set $this = $this->next end match_and_load_symbols 1. FOR_LIST_ELEMENTS_SAFE is not as safe as it says: it will dereference the final NULL pointer after assigning it to var. Which is mostly harmless without memory protection, but crashes grub-emu running the help command. 2. Speaking of which, running "help help" crashes because the help command was registered with a 0 pointer for the parser argument. The NULL check in grub_arg_show_help() happens too late. This does not seem to do much on real hardware, though it may access some bogus data. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?38800> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-grub mailing list Bug-grub@gnu.org https://lists.gnu.org/mailman/listinfo/bug-grub