From e28975eff7fa7b6078265bc3114caec3c73ed619 Mon Sep 17 00:00:00 2001 From: tron Date: Tue, 25 Jan 2011 15:28:55 +0000 Subject: [PATCH] Pullup ticket #3336 - requested by gls comms/asterisk18: security update Revisions pulled up: - comms/asterisk18/Makefile 1.3-1.4 - comms/asterisk18/distinfo 1.5-1.6 - comms/asterisk18/patches/patch-aq 1.2 --- Module Name: pkgsrc Committed By: jnemeth Date: Sun Jan 16 17:52:43 UTC 2011 Modified Files: pkgsrc/comms/asterisk18: Makefile distinfo pkgsrc/comms/asterisk18/patches: patch-aq Log Message: Update to 1.8.2: The release of Asterisk 1.8.2 resolves several issues reported by the community and would have not been possible without your participation. Thank you! The following is a sample of the issues resolved in this release: * 'sip notify clear-mwi' needs terminating CRLF. (Closes issue #18275. Reported, patched by klaus3000) * Patch for deadlock from ordering issue between channel/queue locks in app_queue (set_queue_variables). (Closes issue #18031. Reported by rain. Patched by bbryant) * Fix cache of device state changes for multiple servers. (Closes issue #18284, #18280. Reported, tested by klaus3000. Patched, tested by russellb) * Resolve issue where channel redirect function (CLI or AMI) hangs up the call instead of redirecting the call. (Closes issue #18171. Reported by: SantaFox) (Closes issue #18185. Reported by: kwemheuer) (Closes issue #18211. Reported by: zahir_koradia) (Closes issue #18230. Reported by: vmarrone) (Closes issue #18299. Reported by: mbrevda) (Closes issue #18322. Reported by: nerbos) * Fix reloading of peer when a user is requested. Prevent peer reloading from causing multiple MWI subscriptions to be created when using realtime. (Closes issue #18342. Reported, patched by nivek.) * Fix XMPP PubSub-based distributed device state. Initialize pubsubflags to 0 so res_jabber doesn't think there is already an XMPP connection sending device state. Also clean up CLI commands a bit. (Closes issue #18272. Reported by klaus3000. Patched by Marquis42) * Don't crash after Set(CDR(userfield)=...) in ast_bridge_call. Instead of setting peer->cdr = NULL, set it to not post. (Closes issue #18415. Reported by macbrody. Patched, tested by jsolares) * Fixes issue with outbound google voice calls not working. Thanks to az1234 and nevermind_quack for their input in helping debug the issue. (Closes issue #18412. Reported by nevermind_quack. Patched by dvossel) For a full list of changes in this release, please see the ChangeLog: http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-1.8.2 --- odule Name: pkgsrc Committed By: jnemeth Date: Fri Jan 21 07:00:44 UTC 2011 Modified Files: pkgsrc/comms/asterisk18: Makefile distinfo Log Message: Update to 1.8.2.2 This is to fix AST-2011-001: Stack buffer overflow in SIP channel driver Asterisk Project Security Advisory - AST-2011-001 Product Asterisk Summary Stack buffer overflow in SIP channel driver Nature of Advisory Exploitable Stack Buffer Overflow Susceptibility Remote Authenticated Sessions Severity Moderate Exploits Known No Reported On January 11, 2011 Reported By Matthew Nicholson Posted On January 18, 2011 Last Updated On January 18, 2011 Advisory Contact Matthew Nicholson CVE Name Description When forming an outgoing SIP request while in pedantic mode, a stack buffer can be made to overflow if supplied with carefully crafted caller ID information. This vulnerability also affects the URIENCODE dialplan function and in some versions of asterisk, the AGI dialplan application as well.. The ast_uri_encode function does not properly respect the size of its output buffer and can write past the end of it when encoding URIs. For full details, see: http://downloads.digium.com/pub/security/AST-2011-001.html --- comms/asterisk18/Makefile | 4 +- comms/asterisk18/distinfo | 28 +++--- comms/asterisk18/patches/patch-aq | 159 +++++++++++++++++++++++++++--- 3 files changed, 160 insertions(+), 31 deletions(-) diff --git a/comms/asterisk18/Makefile b/comms/asterisk18/Makefile index 91205e0fcf5..40d1488602a 100644 --- a/comms/asterisk18/Makefile +++ b/comms/asterisk18/Makefile @@ -1,9 +1,9 @@ -# $NetBSD: Makefile,v 1.1.1.1 2010/12/15 03:22:43 jnemeth Exp $ +# $NetBSD$ # # NOTE: when updating this package, there are two places that sound # tarballs need to be checked -DISTNAME= asterisk-1.8.1.1 +DISTNAME= asterisk-1.8.2.2 DIST_SUBDIR= ${PKGNAME_NOREV} DISTFILES= ${DEFAULT_DISTFILES} EXTRACT_ONLY= ${DISTNAME}.tar.gz diff --git a/comms/asterisk18/distinfo b/comms/asterisk18/distinfo index 8ffbf936c8a..35f817c5803 100644 --- a/comms/asterisk18/distinfo +++ b/comms/asterisk18/distinfo @@ -1,17 +1,17 @@ -$NetBSD: distinfo,v 1.3 2010/12/22 04:28:52 jnemeth Exp $ +$NetBSD$ -SHA1 (asterisk-1.8.1.1/asterisk-1.8.1.1.tar.gz) = 8499778d83a8f35ce5abbfe4680de1701dc10f7c -RMD160 (asterisk-1.8.1.1/asterisk-1.8.1.1.tar.gz) = a761369083f9b5789dd055ab7df678b1cce83287 -Size (asterisk-1.8.1.1/asterisk-1.8.1.1.tar.gz) = 26198619 bytes -SHA1 (asterisk-1.8.1.1/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz) = 8692fa61423b4769dc8bfa78faf9ed5ef7a259b9 -RMD160 (asterisk-1.8.1.1/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz) = 68170c769d739d6b5b35b00f999ad6bbf876f9f6 -Size (asterisk-1.8.1.1/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz) = 3349898 bytes -SHA1 (asterisk-1.8.1.1/extract-cfile.awk) = c4f08eee1ab83c041bde1ab91672a4a3c43c28b8 -RMD160 (asterisk-1.8.1.1/extract-cfile.awk) = cd59f8e5807732023d5aec95187e2d5572f400a4 -Size (asterisk-1.8.1.1/extract-cfile.awk) = 667 bytes -SHA1 (asterisk-1.8.1.1/rfc3951.txt) = 1a6c769be750fb02456d60db2470909254496017 -RMD160 (asterisk-1.8.1.1/rfc3951.txt) = 15f7ec61653ec9953172f8f2150e7d8f6f620926 -Size (asterisk-1.8.1.1/rfc3951.txt) = 373442 bytes +SHA1 (asterisk-1.8.2.2/asterisk-1.8.2.2.tar.gz) = c5cf5a02e2dcab9b537c8909fc7505fedf025c43 +RMD160 (asterisk-1.8.2.2/asterisk-1.8.2.2.tar.gz) = 1f642528d67773a82abb928f725309c88c33b2f7 +Size (asterisk-1.8.2.2/asterisk-1.8.2.2.tar.gz) = 26330842 bytes +SHA1 (asterisk-1.8.2.2/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz) = 8692fa61423b4769dc8bfa78faf9ed5ef7a259b9 +RMD160 (asterisk-1.8.2.2/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz) = 68170c769d739d6b5b35b00f999ad6bbf876f9f6 +Size (asterisk-1.8.2.2/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz) = 3349898 bytes +SHA1 (asterisk-1.8.2.2/extract-cfile.awk) = c4f08eee1ab83c041bde1ab91672a4a3c43c28b8 +RMD160 (asterisk-1.8.2.2/extract-cfile.awk) = cd59f8e5807732023d5aec95187e2d5572f400a4 +Size (asterisk-1.8.2.2/extract-cfile.awk) = 667 bytes +SHA1 (asterisk-1.8.2.2/rfc3951.txt) = 1a6c769be750fb02456d60db2470909254496017 +RMD160 (asterisk-1.8.2.2/rfc3951.txt) = 15f7ec61653ec9953172f8f2150e7d8f6f620926 +Size (asterisk-1.8.2.2/rfc3951.txt) = 373442 bytes SHA1 (patch-aa) = a157fe745bde7880cbbdcfdf9e4bb4381f1df185 SHA1 (patch-af) = ebad62fcb31b600d30235cc5e93284c93b2c8af9 SHA1 (patch-ag) = c71c61350cefbbe53eefa99245ca7712753f22d5 @@ -22,7 +22,7 @@ SHA1 (patch-am) = 5f9cbf47ec1cb66758492a5ed1bf843006eae9b7 SHA1 (patch-an) = 93a5df66fd6459fb76e9191dc3bf37b9ee5483b5 SHA1 (patch-ao) = 0663a698469550b22bb97ee1b18980bc2bc67495 SHA1 (patch-ap) = c36531be80784d47c2c772ccc386ef2b8f71c72f -SHA1 (patch-aq) = 9e05e8d099b92f6c087ca083c5a6d89a0c345061 +SHA1 (patch-aq) = 1dd170ff603e4bfdfb816695f31b7aefde692f54 SHA1 (patch-ar) = 5e117f173e6743703d5d83787877e7a9ce8500f3 SHA1 (patch-as) = 84b84acac731671944981a60124d0447a2cd322c SHA1 (patch-at) = ce094dc436cc4fd6aeafca3460a25c2db077eaf8 diff --git a/comms/asterisk18/patches/patch-aq b/comms/asterisk18/patches/patch-aq index 22a312341b5..73669df4630 100644 --- a/comms/asterisk18/patches/patch-aq +++ b/comms/asterisk18/patches/patch-aq @@ -1,31 +1,160 @@ -$NetBSD: patch-aq,v 1.9 2010/12/12 10:19:44 jnemeth Exp $ +$NetBSD$ ---- configure.orig 2010-11-09 20:33:05.000000000 +0000 +--- configure.orig 2011-01-12 16:52:31.000000000 +0000 +++ configure -@@ -16365,6 +16365,17 @@ fi +@@ -22973,6 +22973,146 @@ fi -+ac_fn_c_check_header_mongrel "$LINENO" "sys/atomic.h" "ac_cv_header_sys_atomic_h" "$ac_includes_default" -+if test "x$ac_cv_header_sys_atomic_h" = x""yes; then : ++if test "${ac_cv_header_sys_atomic_h+set}" = set; then ++ { echo "$as_me:$LINENO: checking for sys/atomic.h" >&5 ++echo $ECHO_N "checking for sys/atomic.h... $ECHO_C" >&6; } ++if test "${ac_cv_header_sys_atomic_h+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++fi ++{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_atomic_h" >&5 ++echo "${ECHO_T}$ac_cv_header_sys_atomic_h" >&6; } ++else ++ # Is the header compilable? ++{ echo "$as_me:$LINENO: checking sys/atomic.h usability" >&5 ++echo $ECHO_N "checking sys/atomic.h usability... $ECHO_C" >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++#include ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_header_compiler=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_compiler=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++echo "${ECHO_T}$ac_header_compiler" >&6; } ++ ++# Is the header present? ++{ echo "$as_me:$LINENO: checking sys/atomic.h presence" >&5 ++echo $ECHO_N "checking sys/atomic.h presence... $ECHO_C" >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ ac_header_preproc=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_preproc=no ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++echo "${ECHO_T}$ac_header_preproc" >&6; } ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { echo "$as_me:$LINENO: WARNING: sys/atomic.h: accepted by the compiler, rejected by the preprocessor!" >&5 ++echo "$as_me: WARNING: sys/atomic.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { echo "$as_me:$LINENO: WARNING: sys/atomic.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: sys/atomic.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { echo "$as_me:$LINENO: WARNING: sys/atomic.h: present but cannot be compiled" >&5 ++echo "$as_me: WARNING: sys/atomic.h: present but cannot be compiled" >&2;} ++ { echo "$as_me:$LINENO: WARNING: sys/atomic.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: sys/atomic.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: sys/atomic.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: sys/atomic.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: sys/atomic.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: sys/atomic.h: section \"Present But Cannot Be Compiled\"" >&2;} ++ { echo "$as_me:$LINENO: WARNING: sys/atomic.h: proceeding with the preprocessor's result" >&5 ++echo "$as_me: WARNING: sys/atomic.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: sys/atomic.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: sys/atomic.h: in the future, the compiler will take precedence" >&2;} ++ ( cat <<\_ASBOX ++## ------------------------------------------ ## ++## Report this to https://issues.asterisk.org ## ++## ------------------------------------------ ## ++_ASBOX ++ ) | sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++{ echo "$as_me:$LINENO: checking for sys/atomic.h" >&5 ++echo $ECHO_N "checking for sys/atomic.h... $ECHO_C" >&6; } ++if test "${ac_cv_header_sys_atomic_h+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_cv_header_sys_atomic_h=$ac_header_preproc ++fi ++{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_atomic_h" >&5 ++echo "${ECHO_T}$ac_cv_header_sys_atomic_h" >&6; } ++ ++fi ++if test $ac_cv_header_sys_atomic_h = yes; then + +cat >>confdefs.h <<_ACEOF -+#define HAVE_SYS_ATOMIC_H 1 ++#define HAVE_OS_ATOMIC_H 1 +_ACEOF + +fi + + + - # The cast to long int works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -@@ -17346,6 +17357,8 @@ $as_echo_n "checking if \"struct ifaddrs - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { echo "$as_me:$LINENO: checking for int" >&5 + echo $ECHO_N "checking for int... $ECHO_C" >&6; } + if test "${ac_cv_type_int+set}" = set; then +@@ -27494,6 +27634,8 @@ _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -+ #include -+ #include - #include ++#include ++#include + #include int main () -- 2.41.0