]> jfr.im git - solanum.git/commitdiff
ircd: various memory leak fixes from pull requests
authorWilliam Pitcock <redacted>
Tue, 9 Feb 2016 16:48:28 +0000 (10:48 -0600)
committerWilliam Pitcock <redacted>
Tue, 9 Feb 2016 16:53:24 +0000 (10:53 -0600)
ircd/irc_dictionary.c
ircd/irc_radixtree.c
ircd/modules.c
ircd/newconf.c
ircd/substitution.c
libratbox/src/snprintf.c

index 6e86128c0b5b5282e18511c24617b3e34e66bf24..e52b29b069b4b2c20ebc8e5419da1596490f4105 100644 (file)
@@ -451,7 +451,7 @@ void irc_dictionary_destroy(struct Dictionary *dtree,
        }
 
        rb_dlinkDelete(&dtree->node, &dictionary_list);
-
+       rb_free(dtree->id);
        rb_free(dtree);
 }
 
index 8b57d7d7dfc52b03efa760aa6985748ed73125a6..5787490cb74e468808f23b441ccdccb4cb3283f6 100644 (file)
@@ -218,6 +218,8 @@ irc_radixtree_destroy(struct irc_radixtree *dtree, void (*destroy_cb)(const char
                irc_radixtree_delete(dtree, delem->leaf.key);
        }
 
+       rb_dlinkDelete(&dtree->node, &radixtree_list);
+       rb_free(dtree->id);
        rb_free(dtree);
 }
 
index 91634cce10bf86fbd0f2829b79a8075c35546d1e..d2191b3f8d7752fcce173250f1a4a78685ae7568 100644 (file)
@@ -707,6 +707,7 @@ unload_one_module(const char *name, int warn)
        lt_dlclose(modlist[modindex]->address);
 
        rb_free(modlist[modindex]->name);
+       rb_free(modlist[modindex]);
        memmove(&modlist[modindex], &modlist[modindex + 1],
               sizeof(struct module *) * ((num_mods - 1) - modindex));
 
index 72732d264e3e7f652e7d2cdd58195ffa5061216b..32ba83e3279a31d90d458b219f4a76d602c990ae 100644 (file)
@@ -864,8 +864,8 @@ conf_set_listen_port_both(void *data, int ssl)
                 {
                        if (!ssl)
                        {
-                               conf_report_error("listener '%s/%d': support for plaintext listeners is being deprecated and may be removed in a future release.  "
-                                                  "It is suggested that users be migrated to SSL/TLS connections.", listener_address, args->v.number);
+                               conf_report_error("listener 'ANY/%d': support for plaintext listeners is being deprecated and may be removed in a future release.  "
+                                                  "It is suggested that users be migrated to SSL/TLS connections.", args->v.number);
                        }
                        add_listener(args->v.number, listener_address, AF_INET, ssl, ssl || yy_defer_accept);
 #ifdef RB_IPV6
@@ -884,8 +884,8 @@ conf_set_listen_port_both(void *data, int ssl)
 
                        if (!ssl)
                        {
-                               conf_report_error("listener 'ANY/%d': support for plaintext listeners is being deprecated and may be removed in a future release.  "
-                                                  "It is suggested that users be migrated to SSL/TLS connections.", args->v.number);
+                               conf_report_error("listener '%s/%d': support for plaintext listeners is being deprecated and may be removed in a future release.  "
+                                                  "It is suggested that users be migrated to SSL/TLS connections.", listener_address, args->v.number);
                        }
 
                        add_listener(args->v.number, listener_address, family, ssl, ssl || yy_defer_accept);
index bb935510f567c78a3c55d3b72e0ed25fe9dd823c..3ed06e82466844a0fa7459386d300b78094eb2fe 100644 (file)
@@ -83,7 +83,7 @@ void substitution_free(rb_dlink_list *varlist)
        {
                struct substitution_variable *tmp = (struct substitution_variable *) nptr->data;
 
-               rb_dlinkDelete(nptr, varlist);
+               rb_dlinkDestroy(nptr, varlist);
                rb_free(tmp->name);
                rb_free(tmp->value);
                rb_free(tmp);
index d2b7cfba2d807bcecb4fc923f9378929939b5c1e..9c7a9db797986f54361a13552b1054ff62ba76f9 100644 (file)
@@ -449,7 +449,7 @@ rb_vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
                        s = va_arg(args, char *);
                        if(s == NULL)
                        {
-                               abort();        /* prefer blowing up vs corrupt data */
+                               s = "(null)";
                        }
                        len = rb_strnlen(s, precision);