diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 1b1369343c5869d46c5efb240ec4de4f18c0bd55..257102eda813534754963fff60c35b24e69e0c19 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -18329,6 +18329,7 @@ static int reload_config(enum channelreloadreason reason)
 	internip = bindaddr;
 	if (ast_find_ourip(&internip.sin_addr, bindaddr)) {
 		ast_log(LOG_WARNING, "Unable to get own IP address, SIP disabled\n");
+		ast_config_destroy(cfg);
 		return 0;
 	}
 	ast_mutex_lock(&netlock);
@@ -18340,6 +18341,7 @@ static int reload_config(enum channelreloadreason reason)
 		sipsock = socket(AF_INET, SOCK_DGRAM, 0);
 		if (sipsock < 0) {
 			ast_log(LOG_WARNING, "Unable to create SIP socket: %s\n", strerror(errno));
+			ast_config_destroy(cfg);
 			return -1;
 		} else {
 			/* Allow SIP clients on the same host to access us: */