From 9517ca078ef1cf866111e41618f0697920b3296e Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Mon, 4 Jul 2022 15:58:41 +0200 Subject: [PATCH] TT#183850 tm: try not to crash on unref Change-Id: Ia0275a6a624ae748aece92ef538891b17c3e767f (cherry picked from commit 2bd85490c7ab472bfe26acad03666fee71822de8) (cherry picked from commit 870b8197c42a2841f688e9a1852e107f50ed33bd) --- debian/patches/series | 1 + ...ck-again-T-just-in-case-before-UNREF.patch | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 debian/patches/sipwise/tm-check-again-T-just-in-case-before-UNREF.patch diff --git a/debian/patches/series b/debian/patches/series index 507e5f8f1..15a3c5c4a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -59,6 +59,7 @@ sipwise/dialog-support-profile_get_size-for-all-profiles.patch sipwise/pv_headers-rework-pvh_remove_header_param.patch ### active development sipwise/presence-be-more-resilient-doing-clean-up.patch +sipwise/tm-check-again-T-just-in-case-before-UNREF.patch # ### Don't just put stuff in any order ### use gbp pq import/export tooling to help maintain patches diff --git a/debian/patches/sipwise/tm-check-again-T-just-in-case-before-UNREF.patch b/debian/patches/sipwise/tm-check-again-T-just-in-case-before-UNREF.patch new file mode 100644 index 000000000..b0d22f8d7 --- /dev/null +++ b/debian/patches/sipwise/tm-check-again-T-just-in-case-before-UNREF.patch @@ -0,0 +1,21 @@ +From: Victor Seva +Date: Mon, 4 Jul 2022 15:49:20 +0200 +Subject: tm: check T just in case before UNREF + +--- + src/modules/tm/t_funcs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/modules/tm/t_funcs.h b/src/modules/tm/t_funcs.h +index 6830b13..dbbdc19 100644 +--- a/src/modules/tm/t_funcs.h ++++ b/src/modules/tm/t_funcs.h +@@ -110,7 +110,7 @@ int send_pr_buffer( struct retr_buf *rb, void *buf, int len); + + #define UNREF_NOSTATS(_T_cell) \ + do{\ +- if (atomic_dec_and_test(&(_T_cell)->ref_count)){ \ ++ if (_T_cell && atomic_dec_and_test(&(_T_cell)->ref_count)){ \ + unlink_timers((_T_cell)); \ + free_cell((_T_cell)); \ + }\