summaryrefslogtreecommitdiffstats
path: root/lib/thread.c
diff options
context:
space:
mode:
authorpaul <paul>2003-03-27 23:48:24 +0000
committerpaul <paul>2003-03-27 23:48:24 +0000
commit2946f65bb88439ca16338dbe3c5d23beaedc507d (patch)
treeefeeac88e6ca1393a8c3643101a1f7f2fa2f29bd /lib/thread.c
parent6898008484a562ff5bae178a6fb0bd885fe8b1e5 (diff)
downloadquagga-2946f65bb88439ca16338dbe3c5d23beaedc507d.tar.bz2
quagga-2946f65bb88439ca16338dbe3c5d23beaedc507d.tar.xz
Need to free the defunct funcname if we grab a thread from the unused list.
Diffstat (limited to 'lib/thread.c')
-rw-r--r--lib/thread.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/thread.c b/lib/thread.c
index 2a5b8068..402167cf 100644
--- a/lib/thread.c
+++ b/lib/thread.c
@@ -414,7 +414,11 @@ thread_get (struct thread_master *m, u_char type,
struct thread *thread;
if (m->unuse.head)
- thread = thread_trim_head (&m->unuse);
+ {
+ thread = thread_trim_head (&m->unuse);
+ if (thread->funcname)
+ XFREE(MTYPE_STRVEC, thread->funcname);
+ }
else
{
thread = XCALLOC (MTYPE_THREAD, sizeof (struct thread));
@@ -852,5 +856,7 @@ funcname_thread_execute (struct thread_master *m,
dummy.funcname = strip_funcname (funcname);
thread_call (&dummy);
+ XFREE (MTYPE_STRVEC, dummy.funcname);
+
return NULL;
}