Mercurial > hg > freeDiameter
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);