[PATCH] D43958: [llvm-readobj][ELF] Move ELF note parsing into lib/Object
    Rafael Avila de Espindola via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Mar  1 13:54:01 PST 2018
    
    
  
Scott Linder via Phabricator <reviews at reviews.llvm.org> writes:
> +/// Note header
> +template <class ELFT>
> +struct Elf_Nhdr_Impl {
> +  LLVM_ELF_IMPORT_TYPES_ELFT(ELFT)
> +  Elf_Word n_namesz;
> +  Elf_Word n_descsz;
> +  Elf_Word n_type;
> +
> +  /// The alignment of the name and descriptor.
> +  ///
> +  /// Implementations differ from the specification here: in practice all
> +  /// variants align both the name and descriptor to 4-bytes.
> +  static const unsigned int Align = 4;
> +
> +  /// Get the note's name, excluding the terminating null byte.
> +  const StringRef getName() const {
> +    if (!n_namesz)
> +      return StringRef();
> +    return StringRef(reinterpret_cast<const char *>(this) +
> +                         sizeof(Elf_Nhdr_Impl<ELFT>),
> +                     n_namesz - 1);
Should we perform bounds checking in here?
Cheers,
Rafael
    
    
More information about the llvm-commits
mailing list