From 3da0bcb4b4e27d115a2d6eb47cd0cebc33d34a61 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Wed, 6 Jun 2018 10:24:18 +0200 Subject: [PATCH] tm: free new tm cell in case of error if it was not referenced - part of t_uac_prepare(), reported by GH #1554 (cherry picked from commit f94770840029c1c73ab129f4b71fcb0cf146d808) --- src/modules/tm/uac.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/modules/tm/uac.c b/src/modules/tm/uac.c index ff466760dd2..9b2f51b5f68 100644 --- a/src/modules/tm/uac.c +++ b/src/modules/tm/uac.c @@ -583,11 +583,18 @@ static inline int t_uac_prepare(uac_req_t *uac_r, error2: #ifdef TM_DEL_UNREF - if (!is_ack) { - UNREF_FREE(new_cell); - }else -#endif + if (is_ack) { free_cell(new_cell); + } else { + if(atomic_get_int(&new_cell->ref_count)==0) { + free_cell(new_cell); + } else { + UNREF_FREE(new_cell); + } + } +#else + free_cell(new_cell); +#endif error3: return ret; }