# HG changeset patch # User Thomas Klausner # Date 1592246015 -7200 # Node ID 44bb63ba9c2c7380d88b722a02fb9a62ba3638bf # Parent c48725959e639681bae583f40373bda85f4e7d5f rt_rewrite: allocate object later to reduce cleanups diff -r c48725959e63 -r 44bb63ba9c2c extensions/rt_rewrite/rt_rewrite.c --- 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);