summaryrefslogtreecommitdiff
path: root/ldso
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-06-15 06:13:36 +0000
committerEric Andersen <andersen@codepoet.org>2003-06-15 06:13:36 +0000
commit889b08e7656a5975f033bdf87ff4bf6366d03606 (patch)
treeef596e3b76c153ed4e52689921d28fd773f37d34 /ldso
parenta8d9ee1f663268a01583923a792d5ede5cd4a0f8 (diff)
Don't segfault when given things other than a regular file.
-Erik
Diffstat (limited to 'ldso')
-rw-r--r--ldso/util/ldd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ldso/util/ldd.c b/ldso/util/ldd.c
index defc91cfd..661fb865f 100644
--- a/ldso/util/ldd.c
+++ b/ldso/util/ldd.c
@@ -503,6 +503,9 @@ int find_dependancies(char* filename)
if ((size_t)statbuf.st_size < sizeof(Elf32_Ehdr))
goto foo;
+ if (!S_ISREG(statbuf.st_mode))
+ goto foo;
+
/* 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);