From cd5451a0e375c6f2b23e59e3fdccd2af2842a8e3 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Sun, 14 Nov 2010 23:08:44 +0100 Subject: [PATCH] Memleak: free the nttlist (network host list) on exit --- citadel/file_ops.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/citadel/file_ops.c b/citadel/file_ops.c index 2e7c4f707..e4453cbdb 100644 --- a/citadel/file_ops.c +++ b/citadel/file_ops.c @@ -48,9 +48,9 @@ /* * network_talking_to() -- concurrency checker */ +static char *nttlist = NULL; int network_talking_to(char *nodename, int operation) { - static char *nttlist = NULL; char *ptr = NULL; int i; char buf[SIZ]; @@ -102,6 +102,14 @@ int network_talking_to(char *nodename, int operation) { return(retval); } +void cleanup_nttlist(void) +{ + begin_critical_section(S_NTTLIST); + if (nttlist != NULL) + free(nttlist); + nttlist = NULL; + end_critical_section(S_NTTLIST); +} @@ -824,6 +832,7 @@ CTDL_MODULE_INIT(file_ops) CtdlRegisterProtoHook(cmd_nuop, "NUOP", "Open a network spool file for upload"); CtdlRegisterProtoHook(cmd_oimg, "OIMG", "Open an image file for download"); CtdlRegisterProtoHook(cmd_uimg, "UIMG", "Upload an image file"); + CtdlRegisterCleanupHook(cleanup_nttlist); } /* return our Subversion id for the Log */ return "file_ops"; -- 2.30.2