Fix memory leaks; need to register lookups so their list is free'd afterwards.
authorWilfried Goesgens <dothebart@citadel.org>
Sun, 1 Mar 2015 13:38:55 +0000 (14:38 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 1 Mar 2015 13:38:55 +0000 (14:38 +0100)
webcit/inetconf.c
webcit/roomlist.c
webcit/sysdep.c

index 15cd5d8e8d59abfd7863b3d3b45fd532c59a8ed4..07a7526a6d0a1d06becdf96ee5cab5936782925f 100644 (file)
@@ -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);
 
 }
index d45db6dc8d999c6b6f3484092d8aeb210f316a2d..42cd9db107315c134dec0a4d35b559cbba7f482d 100644 (file)
@@ -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);
index cbfba25f955d6e5e4c4687e6d3b4868940440fb1..94314a25cfdefff982f76f9fee59710c1e713674 100644 (file)
@@ -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 ();