Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/libexec/ld.elf_so Unloading objects, can cause other objects...



details:   https://anonhg.NetBSD.org/src/rev/b9b08fe566ce
branches:  trunk
changeset: 509695:b9b08fe566ce
user:      christos <christos%NetBSD.org@localhost>
date:      Thu May 10 20:19:25 2001 +0000

description:
Unloading objects, can cause other objects whose reference count becomes
0 to be unloaded. Make sure that when we unload those objects we remove
any references to them from the globals list... This fixes SIGSEGV with
apache+mod_php+mysql.

XXX: This fix should be pulled up.

christos

diffstat:

 libexec/ld.elf_so/rtld.c |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (17 lines):

diff -r 961a44e0d4c2 -r b9b08fe566ce libexec/ld.elf_so/rtld.c
--- a/libexec/ld.elf_so/rtld.c  Thu May 10 19:07:39 2001 +0000
+++ b/libexec/ld.elf_so/rtld.c  Thu May 10 20:19:25 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rtld.c,v 1.44 2001/02/03 13:25:00 pk Exp $      */
+/*     $NetBSD: rtld.c,v 1.45 2001/05/10 20:19:25 christos Exp $        */
 
 /*
  * Copyright 1996 John D. Polstra.
@@ -630,6 +630,7 @@
                                dbg(("unloading \"%s\"", obj->path));
 #endif
                                munmap(obj->mapbase, obj->mapsize);
+                               _rtld_objlist_remove(&_rtld_list_global, obj);
                                _rtld_linkmap_delete(obj);
                                *linkp = obj->next;
                                _rtld_obj_free(obj);



Home | Main Index | Thread Index | Old Index