From b3f4993851e8b95f9f46c235dfed9e6e40b9794c Mon Sep 17 00:00:00 2001 From: Sebastian Kemper Date: Tue, 3 Aug 2021 18:13:59 +0200 Subject: [PATCH] sofia-sip: bump to 1.13.4 Fixes some issues, for instance a segfault during shutdown when sofia-sip wasn't fully loaded, see [1]. The segfault was reproducible by simply calling "freeswitch -help". The added patch is to address a library versioning regression, patch is from upstream. [1] https://github.com/freeswitch/sofia-sip/issues/58 Signed-off-by: Sebastian Kemper --- libs/sofia-sip/Makefile | 6 +- .../patches/02-NUA_handles-mem-leak-fix.patch | 67 ------------------- .../patches/02-fix-lib-version.patch | 20 ++++++ 3 files changed, 23 insertions(+), 70 deletions(-) delete mode 100644 libs/sofia-sip/patches/02-NUA_handles-mem-leak-fix.patch create mode 100644 libs/sofia-sip/patches/02-fix-lib-version.patch diff --git a/libs/sofia-sip/Makefile b/libs/sofia-sip/Makefile index a25e9e0..f7b755d 100644 --- a/libs/sofia-sip/Makefile +++ b/libs/sofia-sip/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sofia-sip -PKG_VERSION:=1.13.3 -PKG_RELEASE:=2 +PKG_VERSION:=1.13.4 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/freeswitch/$(PKG_NAME)/tar.gz/v${PKG_VERSION}? -PKG_HASH:=6f9cc7ed674e2214809e390728da0df646f94e5b991cff9f393217176de9d7e4 +PKG_HASH:=3f3f7b7b26cc150dae7e1cae95a0fe2c65905311fe143145b4bcda8f97d7ed4e # sofia-sip adds a version to include path # need to update this when the version changes diff --git a/libs/sofia-sip/patches/02-NUA_handles-mem-leak-fix.patch b/libs/sofia-sip/patches/02-NUA_handles-mem-leak-fix.patch deleted file mode 100644 index 54cc5b3..0000000 --- a/libs/sofia-sip/patches/02-NUA_handles-mem-leak-fix.patch +++ /dev/null @@ -1,67 +0,0 @@ -commit 8071e8accd250bd1d7758dd16166382b48a6e6d4 -Author: Andrey Volk -Date: Wed Mar 10 18:37:18 2021 +0300 - - NUA handles must be able to unref via stack (nua_handle_unref_user() API) when they are already destroyed or nua is in shutdown - ---- a/libsofia-sip-ua/nua/nua.c -+++ b/libsofia-sip-ua/nua/nua.c -@@ -1165,11 +1165,7 @@ void nua_unref_user(nua_t *nua) - - void nua_handle_unref_user(nua_handle_t *nh) - { -- enter; -- if (NH_IS_VALID(nh)) { -- nua_signal(nh->nh_nua, nh, NULL, nua_r_handle_unref, 0, NULL, TAG_NULL()); -- } -- else { -- SU_DEBUG_1(("nua: nua_r_handle_unref with invalid handle %p\n", (void *)nh)); -- } -+ assert(nh); -+ nh_enter; -+ nua_signal(nh->nh_nua, nh, NULL, nua_r_handle_unref, 0, NULL, TAG_NULL()); - } ---- a/libsofia-sip-ua/nua/nua_common.c -+++ b/libsofia-sip-ua/nua/nua_common.c -@@ -376,6 +376,8 @@ char const *nua_event_name(nua_event_t e - case nua_r_nit_respond: return "nua_r_nit_respond"; - case nua_r_set_params: return "nua_r_set_params"; - case nua_r_ack: return "nua_r_ack"; -+ case nua_r_handle_unref: return "nua_r_handle_unref"; -+ case nua_r_unref: return "nua_r_unref"; - default: return "NUA_UNKNOWN"; - } - } ---- a/libsofia-sip-ua/nua/nua_stack.c -+++ b/libsofia-sip-ua/nua/nua_stack.c -@@ -514,7 +514,7 @@ int nua_signal(nua_t *nua, nua_handle_t - - assert(tend == t); (void)tend; assert(b == bend); (void)bend; - -- e->e_always = event == nua_r_destroy || event == nua_r_shutdown; -+ e->e_always = event == nua_r_destroy || event == nua_r_shutdown || event == nua_r_handle_unref || event == nua_r_unref; - e->e_event = event; - e->e_nh = nh ? nua_handle_ref(nh) : NULL; - e->e_status = status; -@@ -549,10 +549,10 @@ void nua_stack_signal(nua_t *nua, su_msg - nua_event_data_t *e = ee->ee_data; - nua_handle_t *nh = e->e_nh; - tagi_t *tags = e->e_tags; -- nua_event_t event; -+ nua_event_t event = (enum nua_event_e)e->e_event; - int error = 0; - -- if (nh) { -+ if (nh && event != nua_r_handle_unref) { - if (!nh->nh_prev) - nh_append(nua, nh); - if (!nh->nh_ref_by_stack) { -@@ -575,8 +575,6 @@ void nua_stack_signal(nua_t *nua, su_msg - - su_msg_save(nua->nua_signal, msg); - -- event = (enum nua_event_e)e->e_event; -- - if (nua->nua_shutdown && !e->e_always) { - /* Shutting down */ - nua_stack_event(nua, nh, NULL, event, diff --git a/libs/sofia-sip/patches/02-fix-lib-version.patch b/libs/sofia-sip/patches/02-fix-lib-version.patch new file mode 100644 index 0000000..09d931d --- /dev/null +++ b/libs/sofia-sip/patches/02-fix-lib-version.patch @@ -0,0 +1,20 @@ +commit d2cc5ce437880ca135ef8ee857cf41ba58981675 +Author: Andrey Volk +Date: Thu Jun 24 19:18:45 2021 +0300 + + Update library version information back to 6:0:6 + +--- a/configure.ac ++++ b/configure.ac +@@ -22,9 +22,9 @@ AC_CONFIG_MACRO_DIR([m4]) + AC_SUBST(VER_LIBSOFIA_SIP_UA_MAJOR_MINOR, [1.13]) + dnl Includedir specific to this sofia version + AC_SUBST(include_sofiadir, '${includedir}/sofia-sip-1.13') +-AC_SUBST(LIBVER_SOFIA_SIP_UA_CUR, [4]) ++AC_SUBST(LIBVER_SOFIA_SIP_UA_CUR, [6]) + AC_SUBST(LIBVER_SOFIA_SIP_UA_REV, [0]) +-AC_SUBST(LIBVER_SOFIA_SIP_UA_AGE, [4]) ++AC_SUBST(LIBVER_SOFIA_SIP_UA_AGE, [6]) + AC_SUBST(LIBVER_SOFIA_SIP_UA_SOVER, [0]) # CUR-AGE + AC_SUBST(LIBVER_SOFIA_SIP_UA_GLIB_CUR, [3]) + AC_SUBST(LIBVER_SOFIA_SIP_UA_GLIB_REV, [0]) -- 2.30.2