[PATCH] D70826: [llvm-readobj/llvm-readelf] - Reimplement dumping of the SHT_GNU_verneed section.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 2 00:33:35 PST 2019


grimar added inline comments.


================
Comment at: llvm/test/tools/llvm-readobj/elf-verneed-invalid.test:372
+    ShOffset: 0xFFFFFFFF
+    Dependencies:
+      - Version: 1
----------------
jhenderson wrote:
> grimar wrote:
> > jhenderson wrote:
> > > Ditto
> > Done.
> Huh, just realised: how come 0xFFFFFFFF + 0 can't be represented?
It happens because section offset (0xFFFFFFFF) + Size (0) > file size (560):

```
ELFFile<ELFT>::getSectionContentsAsArray(const Elf_Shdr *Sec) const {
...
  if ((std::numeric_limits<uintX_t>::max() - Offset < Size) ||
      Offset + Size > Buf.size())
    return createError("section " + getSecIndexForError(this, Sec) +
                       " has a sh_offset (0x" + Twine::utohexstr(Offset) +
                       ") + sh_size (0x" + Twine::utohexstr(Size) +
                       ") that cannot be represented");
```


================
Comment at: llvm/test/tools/llvm-readobj/elf-verneed-invalid.test:396-397
+    ShOffset: 0xFFFFFFFF
+DynamicSymbols:
+  - Name: foo
+
----------------
jhenderson wrote:
> I believe this can't be removed because you need a .dynstr, right? Can you add a comment please.
Done.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70826/new/

https://reviews.llvm.org/D70826





More information about the llvm-commits mailing list