diff options
| author | John Polstra <jdp@FreeBSD.org> | 1999-08-20 22:33:44 +0000 |
|---|---|---|
| committer | John Polstra <jdp@FreeBSD.org> | 1999-08-20 22:33:44 +0000 |
| commit | 41f83b07a8fec4ca6b84f21667b7c3cf610920ea (patch) | |
| tree | d60561adba9015747d8e315bd8ce23a2aca3cf14 | |
| parent | f996ef639507f381eda2074825b17c6d87ae5752 (diff) | |
Notes
| -rw-r--r-- | libexec/rtld-elf/rtld.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index 796742adb484..f1dd6960227d 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -22,7 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: rtld.c,v 1.28 1999/07/14 04:09:11 jdp Exp $ + * $Id: rtld.c,v 1.29 1999/07/18 00:02:19 jdp Exp $ */ /* @@ -1523,14 +1523,14 @@ unload_object(Obj_Entry *root, bool do_fini_funcs) static void unref_object_dag(Obj_Entry *root) { + const Needed_Entry *needed; + assert(root->refcount != 0); root->refcount--; - if (root->refcount == 0) { - const Needed_Entry *needed; - + if (root->refcount == 0) for (needed = root->needed; needed != NULL; needed = needed->next) - unref_object_dag(needed->obj); - } + if (needed->obj != NULL) + unref_object_dag(needed->obj); } /* |
