]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
test_cel: Plug a few ref leaks
authorGeorge Joseph <gjoseph@digium.com>
Mon, 26 Nov 2018 22:18:00 +0000 (15:18 -0700)
committerGeorge Joseph <gjoseph@digium.com>
Mon, 26 Nov 2018 22:19:43 +0000 (17:19 -0500)
These are only a few of the leaks.  The large number of macros
and return paths in this file would make a weeks worth of work
to plug them all.

Change-Id: Ie2369fa944023d44767871c5c30974cb077ffb56

tests/test_cel.c

index 0b17d488b6956995f3f61e4372376343537f696d..bfa8293acfa79c9e517613d074a609598117e34e 100644 (file)
@@ -1790,7 +1790,7 @@ static int append_expected_event(
 
 static void test_sub(struct ast_event *event)
 {
-       struct ast_event *event_dup = ao2_dup_event(event);
+       RAII_VAR(struct ast_event *, event_dup, ao2_dup_event(event), ao2_cleanup);
        const char *chan_name;
        SCOPED_MUTEX(mid_test_lock, &mid_test_sync_lock);
 
@@ -1855,11 +1855,15 @@ static int test_cel_init_cb(struct ast_test_info *info, struct ast_test *test)
  */
 static int test_cel_peer_strings_match(const char *str1, const char *str2)
 {
-       struct ao2_container *intersection = ast_str_container_alloc(11);
+       RAII_VAR(struct ao2_container *, intersection, ast_str_container_alloc(11), ao2_cleanup);
        RAII_VAR(char *, str1_dup, ast_strdup(str1), ast_free);
        RAII_VAR(char *, str2_dup, ast_strdup(str2), ast_free);
        char *chan;
 
+       if (!intersection) {
+               return 1;
+       }
+
        while ((chan = strsep(&str1_dup, ","))) {
                ast_str_container_add(intersection, chan);
        }
@@ -2140,6 +2144,10 @@ static int unload_module(void)
 
        ast_channel_unregister(&test_cel_chan_tech);
 
+       ao2_cleanup(cel_expected_events);
+       cel_expected_events = NULL;
+       ao2_cleanup(cel_received_events);
+       cel_received_events = NULL;
        ao2_cleanup(cel_test_config);
        cel_test_config = NULL;