]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/newconf.c
Fix memory leak of operator certfp fields.
[irc/rqf/shadowircd.git] / src / newconf.c
index 5991cceeb55b709f43132abb8cb9e4ba64498af7..2bddfce3dd55a4a79cfcb09aca6b647d753290d2 100644 (file)
@@ -628,7 +628,7 @@ conf_end_oper(struct TopConf *tc)
                }
 
                if(!EmptyString(yy_oper->certfp))
-                       yy_tmpoper->certfp = yy_oper->certfp;
+                       yy_tmpoper->certfp = rb_strdup(yy_oper->certfp);
 #endif
 
                /* all is ok, put it on oper_conf_list */
@@ -652,6 +652,8 @@ conf_set_oper_flags(void *data)
 static void
 conf_set_oper_fingerprint(void *data)
 {
+       if (yy_oper->certfp)
+               rb_free(yy_oper->certfp);
        yy_oper->certfp = rb_strdup((char *) data);
 }
 
@@ -1389,6 +1391,8 @@ conf_set_connect_accept_password(void *data)
 static void
 conf_set_connect_fingerprint(void *data)
 {
+       if (yy_server->certfp)
+               rb_free(yy_server->certfp);
        yy_server->certfp = rb_strdup((char *) data);
 
        /* force SSL to be enabled if fingerprint is enabled. */