asterisk: add upstream patch against iax2 crash 823/head
authorSebastian Kemper <sebastian_ml@gmx.net>
Sun, 23 Jul 2023 10:26:21 +0000 (12:26 +0200)
committerSebastian Kemper <sebastian_ml@gmx.net>
Sun, 23 Jul 2023 13:47:14 +0000 (15:47 +0200)
Reported by Sergio in issue #821. This adds upstream patch for the
crash. See upstream issue [1] for details.

[1] https://github.com/asterisk/asterisk/issues/180

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
(cherry picked from commit 3d063acb25d745479df94d7731b90773d52b8e8a)

net/asterisk/Makefile
net/asterisk/patches/190-chan_iax2.c-Avoid-crash-with-IAX2-switch-support.patch [new file with mode: 0644]

index d156d52026d6ff7cfd1e40553cefdd6fcd097c41..2c5220343c3d2ade08327c8d59ee34a2b97c6009 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=asterisk
 PKG_VERSION:=20.3.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=asterisk-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://downloads.asterisk.org/pub/telephony/asterisk/releases
diff --git a/net/asterisk/patches/190-chan_iax2.c-Avoid-crash-with-IAX2-switch-support.patch b/net/asterisk/patches/190-chan_iax2.c-Avoid-crash-with-IAX2-switch-support.patch
new file mode 100644 (file)
index 0000000..dc8e180
--- /dev/null
@@ -0,0 +1,25 @@
+From d26a00ef3484f7fa602044e73e31bcefc8ca1917 Mon Sep 17 00:00:00 2001
+From: Sean Bright <sean@seanbright.com>
+Date: Fri, 7 Jul 2023 15:57:39 -0400
+Subject: [PATCH] chan_iax2.c: Avoid crash with IAX2 switch support.
+
+A change made in 82cebaa0 did not properly handle the case when a
+channel was not provided, triggering a crash. ast_check_hangup(...)
+does not protect against NULL pointers.
+
+Fixes #180
+---
+ channels/chan_iax2.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/channels/chan_iax2.c
++++ b/channels/chan_iax2.c
+@@ -14323,7 +14323,7 @@ static struct iax2_dpcache *find_cache(s
+                       ast_log(LOG_WARNING, "Timeout waiting for %s exten %s\n", data, exten);
+               }
+-              if (ast_check_hangup(chan)) {
++              if (chan && ast_check_hangup(chan)) {
+                       doabort = 1;
+               }