summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoff Norton <grompf@sublimeintervention.com>2010-06-14 17:39:53 +0000
committerguest <ivmai@mail.ru>2011-07-29 15:31:22 +0400
commit1817be347749012d99f8ae2d98802142dc3e4edd (patch)
tree2cc62a95339cd5f3db045d1438963ef8cb69392d
parente9ac0c5fb87e42871b8bfb0a0b9dff89166770e1 (diff)
downloadbdwgc-1817be347749012d99f8ae2d98802142dc3e4edd.tar.gz
2010-06-14 Geoff Norton <gnorton@novell.com>
* dyn_load.c: Fix one other place where l_addr could be null on bionic. svn path=/trunk/mono/; revision=158891
-rw-r--r--ChangeLog5
-rw-r--r--dyn_load.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index de4da8da..da66ce56 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-14 Geoff Norton <gnorton@novell.com>
+
+ * dyn_load.c: Fix one other place where l_addr could be null on
+ bionic.
+
2010-05-31 Geoff Norton <gnorton@novell.com>
* dyn_load.c: Its possible for linkmap->l_addr to be null for the
diff --git a/dyn_load.c b/dyn_load.c
index 63f64624..a42efd4e 100644
--- a/dyn_load.c
+++ b/dyn_load.c
@@ -250,7 +250,10 @@ void GC_register_dynamic_libraries()
char * start;
register int i;
- e = (ElfW(Ehdr) *) lm->l_addr;
+ e = (ElfW(Ehdr) *) lm->l_addr;
+ if (e == NULL)
+ continue;
+
p = ((ElfW(Phdr) *)(((char *)(e)) + e->e_phoff));
offset = ((unsigned long)(lm->l_addr));
for( i = 0; i < (int)(e->e_phnum); ((i++),(p++)) ) {