diff options
author | paul <paul> | 2003-03-27 23:48:24 +0000 |
---|---|---|
committer | paul <paul> | 2003-03-27 23:48:24 +0000 |
commit | 2946f65bb88439ca16338dbe3c5d23beaedc507d (patch) | |
tree | efeeac88e6ca1393a8c3643101a1f7f2fa2f29bd /lib/thread.c | |
parent | 6898008484a562ff5bae178a6fb0bd885fe8b1e5 (diff) | |
download | quagga-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.c | 8 |
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; } |