From: Wilfried Goesgens Date: Sun, 1 Mar 2015 13:38:55 +0000 (+0100) Subject: Fix memory leaks; need to register lookups so their list is free'd afterwards. X-Git-Tag: v9.01~10 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=6636ac9321f0ddb1cc2d21c5f806576396651e38 Fix memory leaks; need to register lookups so their list is free'd afterwards. --- diff --git a/webcit/inetconf.c b/webcit/inetconf.c index 15cd5d8e8..07a7526a6 100644 --- a/webcit/inetconf.c +++ b/webcit/inetconf.c @@ -250,6 +250,6 @@ InitModule_INETCONF WebcitAddUrlHandler(HKEY("save_inetconf"), "", 0, new_save_inetconf, 0); RegisterIterator("SERVCFG:INET", 1, NULL, GetInetConfHash, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterNamespace("SERVCFG:FLUSHINETCFG",0, 0, DeleteInetConfHash, NULL, CTX_NONE); - RegisterIterator("ITERATE:VALID:DOMAINNAMES", 1, NULL, GetValidDomainNames, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); + RegisterIterator("ITERATE:VALID:DOMAINNAMES", 1, NULL, GetValidDomainNames, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); } diff --git a/webcit/roomlist.c b/webcit/roomlist.c index d45db6dc8..42cd9db10 100644 --- a/webcit/roomlist.c +++ b/webcit/roomlist.c @@ -440,6 +440,10 @@ HashList *GetThisRoomPossibleMAlias(StrBuf *Target, WCTemplputParams *TP) Domains = GetValidDomainNames(Target, TP); if (Domains == NULL) return NULL; + if (GetCount(Domains) == 0) { + DeleteHash(Domains); + return NULL; + } PossibleAliases = NewHash(1, NULL); Line = NewStrBuf(); RoomName = NewStrBufDup(WCC->CurRoom.name); @@ -504,7 +508,7 @@ HashList *GetThisRoomPossibleMAlias(StrBuf *Target, WCTemplputParams *TP) } else if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); - + DeleteHash(&Domains); FreeStrBuf(&Line); FreeStrBuf(&RoomName); return PossibleAliases; @@ -947,8 +951,8 @@ InitModule_ROOMLIST RegisterIterator("ITERATE:THISROOM:WHO_KNOWS", 0, NULL, GetWhoKnowsHash, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterIterator("ITERATE:THISROOM:GNET", 1, NULL, GetNetConfigHash, NULL, NULL, CTX_STRBUFARR, CTX_NONE, IT_NOFLAG); - RegisterIterator("ITERATE:THISROOM:MALIAS", 1, NULL, GetThisRoomMAlias, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); - RegisterIterator("ITERATE:THISROOM:POSSIBLE:MALIAS", 1, NULL, GetThisRoomPossibleMAlias, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); + RegisterIterator("ITERATE:THISROOM:MALIAS", 1, NULL, GetThisRoomMAlias, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); + RegisterIterator("ITERATE:THISROOM:POSSIBLE:MALIAS", 1, NULL, GetThisRoomPossibleMAlias, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterIterator("LFLR", 0, NULL, GetFloorListHash, NULL, NULL, CTX_FLOORS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); RegisterIterator("LKRA", 0, NULL, GetRoomListHashLKRA, NULL, NULL, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); diff --git a/webcit/sysdep.c b/webcit/sysdep.c index cbfba25f9..94314a25c 100644 --- a/webcit/sysdep.c +++ b/webcit/sysdep.c @@ -181,6 +181,8 @@ void end_critical_section(int which_one) void ShutDownWebcit(void) { + + DeleteHash(&GZMimeBlackList); free_zone_directory (); icaltimezone_release_zone_tab (); icalmemory_free_ring ();