changeset 1547:44bb63ba9c2c

rt_rewrite: allocate object later to reduce cleanups
author Thomas Klausner <tk@giga.or.at>
date Mon, 15 Jun 2020 20:33:35 +0200
parents c48725959e63
children edfb2b662b91
files extensions/rt_rewrite/rt_rewrite.c
diffstat 1 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/extensions/rt_rewrite/rt_rewrite.c	Mon Jun 15 20:33:03 2020 +0200
+++ b/extensions/rt_rewrite/rt_rewrite.c	Mon Jun 15 20:33:35 2020 +0200
@@ -397,23 +397,21 @@
 		return errno;
 	}
 
-	if ((store=store_new()) == NULL) {
-		fd_log_error("%s: malloc failure");
-		pthread_rwlock_unlock(&rt_rewrite_lock);
-		return ENOMEM;
-	}
 	if ((ret = fd_msg_parse_dict(*msg, fd_g_config->cnf_dict, NULL)) != 0) {
 		fd_log_notice("%s: error parsing message", MODULE_NAME);
-		free(store);
 		pthread_rwlock_unlock(&rt_rewrite_lock);
 		return ret;
 	}
 	if ((ret=fd_msg_browse(*msg, MSG_BRW_FIRST_CHILD, &avp, NULL)) != 0) {
 		fd_log_notice("internal error: message has no child");
-		free(store);
 		pthread_rwlock_unlock(&rt_rewrite_lock);
 		return ret;
 	}
+	if ((store=store_new()) == NULL) {
+		fd_log_error("%s: malloc failure");
+		pthread_rwlock_unlock(&rt_rewrite_lock);
+		return ENOMEM;
+	}
 	if (replace_avps(*msg, avp, avp_match_start->children, store) != 0) {
 		fd_log_error("%s: replace AVP function failed", MODULE_NAME);
 		store_free(store);
"Welcome to our mercurial repository"