diff options
author | 2007-08-17 23:44:43 +0000 | |
---|---|---|
committer | 2007-08-17 23:44:43 +0000 | |
commit | ebb4bc661478f86485748ba693496d4d6cdf602b (patch) | |
tree | c8ac5ef3b049152e5004e47e1ed115f3a22a3837 /TODO | |
parent | For Solaris, use -f instead of -e to avoid "/bin/sh: test: argument (diff) | |
download | pax-utils-ebb4bc661478f86485748ba693496d4d6cdf602b.tar.gz pax-utils-ebb4bc661478f86485748ba693496d4d6cdf602b.tar.bz2 pax-utils-ebb4bc661478f86485748ba693496d4d6cdf602b.zip |
add some more notes on fugly corner cases
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -7,6 +7,8 @@ due to: rel = REL ## B (elf->data + EGET(shdr[s].sh_offset)); \ rela = RELA ## B (elf->data + EGET(shdr[s].sh_offset)); \ sym = SYM ## B (elf->data + EGET(symtab->sh_offset)); \ +perhaps we need to just force the alignment of the data member in the struct to +the size of something large ? or just ignore the warning ... pspax -u 0 errno = 0; uid = strtol(optarg, NULL, 10); if (uid == 0 && errno != 0) error("invalid value"); @@ -18,3 +20,11 @@ care though ? this would be an issue if: - host is 32bit - object being analyzed is 64bit - object has symbols which is larger than 32bits + +scanelf does not check offsets of DT's when scanning PT_DYNAMIC ... if a bogus +ELF had a PHDR of type PT_DYNAMIC which claimed to be of size say 1 and had an +offset just shy of the end of the file, we'll probably crash ... + +dumpelf does not do string checking in very very verbose mode. it assumes the +strings are sane when dumping the sections. only way around this is to check +everything single byte and print it out a character at a time ... sucks ... |