From: Jim Blandy Date: Thu, 16 Mar 2000 23:12:42 +0000 (+0000) Subject: * solib.c (current_sos): Be more careful about freeing the new X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=15588ebb212b051918e6cc4fb42ac194369e3d22;p=deliverable%2Fbinutils-gdb.git * solib.c (current_sos): Be more careful about freeing the new so_list node if an error occurs. --- diff --git a/gdb/solib.c b/gdb/solib.c index c9f1e144cb..f1537f3a1e 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;