Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

elf_reader: only read data from PROGBITS sections, ignore NOBITS #740

Merged
merged 1 commit into from Jul 20, 2022

Commits on Jul 20, 2022

  1. elf_reader: only read data from PROGBITS sections, ignore NOBITS

    'Virtual' NOBITS sections like .bss always share an offset with another
    ELF section, but reading from them is expected to yield only NUL bytes.
    
    Prior to Go 1.18, opening a NOBITS section would yield a reader into
    the overlapping 'real' section, dutifully returning its non-NUL bytes
    and potentially reading past the end of the underlying file reader if
    the size of the NOBITS section was large enough. This was addressed in
    CL#375216.
    
    As both an optimization (in case of large .bss sections) and a workaround
    for this bug in Go versions 1.17 and earlier, only read data from PROGBITS
    sections, which all known LLVM versions use correctly. Return an error if
    a data section is not PROGBITS or NOBITS.
    
    Signed-off-by: Timo Beckers <timo@isovalent.com>
    ti-mo committed Jul 20, 2022
    Copy the full SHA
    0393df6 View commit details
    Browse the repository at this point in the history