summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2020-01-22 07:19:09 -0800
committerToomas Soome <tsoome@me.com>2020-01-25 09:34:39 +0200
commitc60a820f97f4b84a182cb6e21fe8a25ff0ad3c4f (patch)
treec5e2670a9bedd64a7126e2bb2d4d55b69d2334ab /usr/src
parent12661a24a0babe84d0a1b8d1fe46fb61dcc5011e (diff)
downloadillumos-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')
-rw-r--r--usr/src/tools/chk4ubin/chk4ubin.c18
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) {