• Ard Biesheuvel's avatar
    efi/libstub: Clean up command line parsing routine · 91d150c0
    Ard Biesheuvel authored
    We currently parse the command non-destructively, to avoid having to
    allocate memory for a copy before passing it to the standard parsing
    routines that are used by the core kernel, and which modify the input
    to delineate the parsed tokens with NUL characters.
    
    Instead, we call strstr() and strncmp() to go over the input multiple
    times, and match prefixes rather than tokens, which implies that we
    would match, e.g., 'nokaslrfoo' in the stub and disable KASLR, while
    the kernel would disregard the option and run with KASLR enabled.
    
    In order to avoid having to reason about whether and how this behavior
    may be abused, let's clean up the parsing routines, and rebuild them
    on top of the existing helpers.
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    91d150c0
x86-stub.c 19 KB