On Tue, 14 Apr 2020 at 20:27, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Tue, Apr 14, 2020 at 3:50 AM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > > > > [*] GRUB on x86 turns out not to zero initialize BSS when it invokes > > the EFI stub as a PE/COFF executable > > The fix seems to be to put all globals in the .data section, even if > they don't have initializers. > > That seems very fragile. Very easy to forget to not declare some > static variable with __efistub_global. > > Could we not make the EFI stub code zero out the BSS itself? Perhaps > setting a warning flag (for a later printout) if it wasn't already > zero, so that people could point fingers are buggy loaders.. > That is the quick fix, but Arvind is working on getting rid of __efistub_global entirely, and use the right linker foo to put .bss in .data. This gives a tiny bit of bloat, but we are talking about a handful of bools here.