diff options
author | Toomas Soome <tsoome@me.com> | 2020-01-22 07:19:09 -0800 |
---|---|---|
committer | Toomas Soome <tsoome@me.com> | 2020-01-25 09:34:39 +0200 |
commit | c60a820f97f4b84a182cb6e21fe8a25ff0ad3c4f (patch) | |
tree | c5e2670a9bedd64a7126e2bb2d4d55b69d2334ab /usr/src/tools | |
parent | 12661a24a0babe84d0a1b8d1fe46fb61dcc5011e (diff) | |
download | illumos-joyent-c60a820f97f4b84a182cb6e21fe8a25ff0ad3c4f.tar.gz |
12239 chk4ubin: smatch errors
Reviewed by: Matthias Scheler <mscheler@tintri.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/tools')
-rw-r--r-- | usr/src/tools/chk4ubin/chk4ubin.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/usr/src/tools/chk4ubin/chk4ubin.c b/usr/src/tools/chk4ubin/chk4ubin.c index 51d372939a..3330cde22b 100644 --- a/usr/src/tools/chk4ubin/chk4ubin.c +++ b/usr/src/tools/chk4ubin/chk4ubin.c @@ -152,19 +152,29 @@ chk4ubin(char *root, char *binary) return (1); } - elf_version(EV_CURRENT); + if (elf_version(EV_CURRENT) == EV_NONE) { + (void) printf("%s: unsupported version.\n", whoami); + (void) close(fd); + return (1); + } + elf = elf_begin(fd, ELF_C_READ, NULL); + if (elf == NULL) { + (void) printf("%s: elf_begin() failed.\n", whoami); + (void) close(fd); + return (1); + } symscn = NULL; while ((symscn = elf_nextscn(elf, symscn)) != NULL) { - gelf_getshdr(symscn, &symhdr); + (void) gelf_getshdr(symscn, &symhdr); switch (symhdr.sh_type) { case SHT_SYMTAB: found_symtab = 1; symtab_size = symhdr.sh_size; strscn = elf_getscn(elf, symhdr.sh_link); if (strscn != NULL) { - gelf_getshdr(strscn, &strhdr); + (void) gelf_getshdr(strscn, &strhdr); strtab_size = strhdr.sh_size; found_strtab = 1; } @@ -174,7 +184,7 @@ chk4ubin(char *root, char *binary) break; } - elf_end(elf); + (void) elf_end(elf); (void) close(fd); if (found_symtab && found_strtab) { |