diff options
author | Geoff Norton <grompf@sublimeintervention.com> | 2010-06-14 21:39:53 +0400 |
---|---|---|
committer | Geoff Norton <grompf@sublimeintervention.com> | 2010-06-14 21:39:53 +0400 |
commit | cb8866ba83d74301e715a887fd87aac51b9e6672 (patch) | |
tree | ecf8ab124df4db21247376bb872ec974bf48fabe /libgc | |
parent | 33142e1b478715cc5e9ab03f64829dc5a58b2754 (diff) |
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
Diffstat (limited to 'libgc')
-rw-r--r-- | libgc/ChangeLog | 5 | ||||
-rw-r--r-- | libgc/dyn_load.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libgc/ChangeLog b/libgc/ChangeLog index de4da8dae6c..da66ce56169 100644 --- a/libgc/ChangeLog +++ b/libgc/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/libgc/dyn_load.c b/libgc/dyn_load.c index 63f646244a5..a42efd4e25d 100644 --- a/libgc/dyn_load.c +++ b/libgc/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++)) ) { |