diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-02-13 07:25:03 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-02-13 07:25:03 +0000 |
commit | 98cba6e7dd947aec0d4cf6e61f2f31318ac919e1 (patch) | |
tree | f12f458769704ba0aee0b668b3cbcf3e706837cb /ldso | |
parent | ce4b0fa7e84539992a0cccb618c4fc9d9cfabc50 (diff) |
Fix silly buffer overflow
Diffstat (limited to 'ldso')
-rw-r--r-- | ldso/util/ldd.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ldso/util/ldd.c b/ldso/util/ldd.c index 68221faab..f9cdd8da0 100644 --- a/ldso/util/ldd.c +++ b/ldso/util/ldd.c @@ -38,6 +38,9 @@ #include <sys/stat.h> #include <sys/types.h> #include "elf.h" +#ifdef DMALLOC +#include <dmalloc.h> +#endif struct library { char *name; @@ -252,7 +255,7 @@ static int add_library(Elf32_Ehdr* ehdr, Elf32_Dyn* dynamic, char *strtab, int i newlib = malloc(sizeof(struct library)); if (!newlib) return 1; - newlib->name = malloc(strlen(s)); + newlib->name = malloc(strlen(s)+1); strcpy(newlib->name, s); newlib->resolved = 0; newlib->path = NULL; @@ -317,7 +320,7 @@ static void find_elf_interpreter(Elf32_Ehdr* ehdr, Elf32_Dyn* dynamic, char *str newlib = malloc(sizeof(struct library)); if (!newlib) return; - newlib->name = malloc(strlen(s)); + newlib->name = malloc(strlen(s)+1); strcpy(newlib->name, s); newlib->path = newlib->name; newlib->resolved = 1; |