summaryrefslogtreecommitdiff
path: root/utils/ldd.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-02-13 11:11:10 +0000
committerEric Andersen <andersen@codepoet.org>2004-02-13 11:11:10 +0000
commit7bd4a2f4aaabca0e46015fe0216c086c7f61f1d4 (patch)
tree2e9481883f1389ff2f9397bb936a37a2e3b937c4 /utils/ldd.c
parent4eaa2fd3d1c7e85258d1e2b22cc60686e638de5a (diff)
Yet more fixups..
Diffstat (limited to 'utils/ldd.c')
-rw-r--r--utils/ldd.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/utils/ldd.c b/utils/ldd.c
index 08e66831f..537316452 100644
--- a/utils/ldd.c
+++ b/utils/ldd.c
@@ -462,6 +462,7 @@ static struct library * find_elf_interpreter(Elf32_Ehdr* ehdr)
free(newlib->name);
if (newlib->path != not_found) {
free(newlib->path);
+ }
newlib->name = NULL;
newlib->path = NULL;
return NULL;
@@ -516,7 +517,7 @@ int find_dependancies(char* filename)
}
if (fstat(fileno(thefile), &statbuf) < 0) {
perror(filename);
- flose(thefile);
+ fclose(thefile);
return -1;
}
@@ -529,9 +530,14 @@ int find_dependancies(char* filename)
/* mmap the file to make reading stuff from it effortless */
ehdr = (Elf32_Ehdr *)mmap(0, statbuf.st_size,
PROT_READ|PROT_WRITE, MAP_PRIVATE, fileno(thefile), 0);
+ if (ehdr == MAP_FAILED) {
+ fclose(thefile);
+ fprintf(stderr, "Out of memory!\n");
+ return -1;
+ }
foo:
- flose(thefile);
+ fclose(thefile);
/* Check if this looks like a legit ELF file */
if (check_elf_header(ehdr)) {