Mercurial > hg > freeDiameter
changeset 1545:3a40bd55ee74
dbg_rt: fix memory leak
author | Thomas Klausner <tk@giga.or.at> |
---|---|
date | Mon, 15 Jun 2020 20:32:03 +0200 |
parents | 7bad8025e69d |
children | c48725959e63 |
files | extensions/dbg_rt/dbg_rt.c |
diffstat | 1 files changed, 11 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/extensions/dbg_rt/dbg_rt.c Mon May 25 10:34:47 2020 +0200 +++ b/extensions/dbg_rt/dbg_rt.c Mon Jun 15 20:32:03 2020 +0200 @@ -33,8 +33,8 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *********************************************************************************************************/ -/* - * Debug-only extension for routing module; +/* + * Debug-only extension for routing module; * displays state information at the end of routing information process. */ #include <freeDiameter/extension.h> @@ -47,7 +47,7 @@ { char * buf = NULL; size_t buflen; TRACE_ENTRY("%p %p", cbdata, msg); - + LOG_D("[dbg_rt] FWD routing message: %p", msg ? *msg : NULL); if (msg) { CHECK_MALLOC( fd_msg_dump_treeview(&buf, &buflen, NULL, *msg, NULL, 0, 1) ); @@ -63,19 +63,20 @@ struct fd_list * li; struct msg * msg = *pmsg; char * buf = NULL; size_t buflen; - + TRACE_ENTRY("%p %p %p", cbdata, msg, candidates); - + LOG_D("[dbg_rt] OUT routing message: %p", msg); CHECK_MALLOC( fd_msg_dump_treeview(&buf, &buflen, NULL, msg, NULL, 0, 1) ); LOG_D("%s", buf); + free(buf); LOG_D("[dbg_rt] Current list of candidates (%p): (score - id)", msg); - + for (li = candidates->next; li != candidates; li = li->next) { struct rtd_candidate *c = (struct rtd_candidate *) li; LOG_D("[dbg_rt] %d -\t%s", c->score, c->diamid); } - + return 0; } @@ -83,7 +84,7 @@ static int dbgrt_main(char * conffile) { TRACE_ENTRY("%p", conffile); - + CHECK_FCT( fd_rt_fwd_register ( dbgrt_fwd_cb, NULL, RT_FWD_ALL, &fwd_hdl ) ); CHECK_FCT( fd_rt_out_register ( dbgrt_out_cb, NULL, -1 /* so that it is called late */, &out_hdl ) ); @@ -94,11 +95,11 @@ void fd_ext_fini(void) { TRACE_ENTRY(); - + /* Unregister the modules */ CHECK_FCT_DO( fd_rt_fwd_unregister ( fwd_hdl, NULL ), /* continue */ ); CHECK_FCT_DO( fd_rt_out_unregister ( out_hdl, NULL ), /* continue */ ); - + return ; }