From 15588ebb212b051918e6cc4fb42ac194369e3d22 Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Thu, 16 Mar 2000 23:12:42 +0000 Subject: [PATCH] * solib.c (current_sos): Be more careful about freeing the new so_list node if an error occurs. --- gdb/solib.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gdb/solib.c b/gdb/solib.c index c9f1e144cb3..f1537f3a1e6 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -1091,6 +1091,7 @@ current_sos () { struct so_list *new = (struct so_list *) xmalloc (sizeof (struct so_list)); + struct cleanup *old_chain = make_cleanup (free, new); memset (new, 0, sizeof (*new)); new->lmaddr = lm; @@ -1104,9 +1105,7 @@ current_sos () does have a name, so we can no longer use a missing name to decide when to ignore it. */ if (IGNORE_FIRST_LINK_MAP_ENTRY (new)) - { - free_so (new); - } + free_so (new); else { int errcode; @@ -1140,6 +1139,8 @@ current_sos () link_ptr = &new->next; } } + + discard_cleanups (old_chain); } return head; -- 2.30.2