summaryrefslogtreecommitdiffstats
path: root/vppinfra/tools/elftool.c
diff options
context:
space:
mode:
Diffstat (limited to 'vppinfra/tools/elftool.c')
-rw-r--r--vppinfra/tools/elftool.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/vppinfra/tools/elftool.c b/vppinfra/tools/elftool.c
index f5d70b56d5f..d9d3704b4a3 100644
--- a/vppinfra/tools/elftool.c
+++ b/vppinfra/tools/elftool.c
@@ -358,10 +358,12 @@ set_interpreter_rpath (elf_tool_main_t * tm)
}
done:
- if (mmap_length > 0)
+ if (mmap_length > 0 && idp)
munmap (idp, mmap_length);
- close (ifd);
- close (ofd);
+ if (ifd >= 0)
+ close (ifd);
+ if (ofd >= 0)
+ close (ofd);
return error;
}
@@ -408,7 +410,10 @@ int main (int argc, char * argv[])
}
if (! tm->input_file)
- clib_error ("no input file");
+ {
+ error = clib_error_return (0, "no input file");
+ goto done;
+ }
/* Do the typical case a stone-simple way... */
if (tm->quiet && tm->set_interpreter && tm->set_rpath && tm->output_file)