pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/comms/asterisk Update to Asterisk 11.6.1: this is a se...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/fdf9306e55a8
branches:  trunk
changeset: 627945:fdf9306e55a8
user:      jnemeth <jnemeth%pkgsrc.org@localhost>
date:      Mon Dec 23 01:34:03 2013 +0000

description:
Update to Asterisk 11.6.1: this is a security fix update to fix
AST-2013-006 and AST-2013-007, and a minor bug fix update.

pkgsrc change: disable SRTP on NetBSD as it doesn't link

---- 11.6.1 ----

The Asterisk Development Team has announced security releases for Certified
Asterisk 1.8.15, 11.2, and Asterisk 1.8, 10, and 11. The available security
releases are released as versions 1.8.15-cert4, 11.2-cert3, 1.8.24.1, 10.12.4,
10.12.4-digiumphones, and 11.6.1.

The release of these versions resolve the following issues:

* A buffer overflow when receiving odd length 16 bit messages in app_sms. An
  infinite loop could occur which would overwrite memory when a message is
  received into the unpacksms16() function and the length of the message is an
  odd number of bytes.

* Prevent permissions escalation in the Asterisk Manager Interface. Asterisk
  now marks certain individual dialplan functions as 'dangerous', which will
  inhibit their execution from external sources.

  A 'dangerous' function is one which results in a privilege escalation. For
  example, if one were to read the channel variable SHELL(rm -rf /) Bad
  Things(TM) could happen; even if the external source has only read
  permissions.

  Execution from external sources may be enabled by setting 'live_dangerously'
  to 'yes' in the [options] section of asterisk.conf. Although doing so is not
  recommended.

These issues and their resolutions are described in the security advisories.

For more information about the details of these vulnerabilities, please read
security advisories AST-2013-006 and AST-2013-007, which were
released at the same time as this announcement.

For a full list of changes in the current releases, please see the ChangeLogs:

http://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-11.6.1

The security advisories are available at:

 * http://downloads.asterisk.org/pub/security/AST-2013-006.pdf
 * http://downloads.asterisk.org/pub/security/AST-2013-007.pdf

Thank you for your continued support of Asterisk!

----- 11.6.0 -----

The Asterisk Development Team has announced the release of Asterisk 11.6.0.

The release of Asterisk 11.6.0 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:

* --- Confbridge: empty conference not being torn down
  (Closes issue ASTERISK-21859. Reported by Chris Gentle)

* --- Let Queue wrap up time influence member availability
  (Closes issue ASTERISK-22189. Reported by Tony Lewis)

* --- Fix a longstanding issue with MFC-R2 configuration that
      prevented users
  (Closes issue ASTERISK-21117. Reported by Rafael Angulo)

* --- chan_iax2: Fix saving the wrong expiry time in astdb.
  (Closes issue ASTERISK-22504. Reported by Stefan Wachtler)

* --- Fix segfault for certain invalid WebSocket input.
  (Closes issue ASTERISK-21825. Reported by Alfred Farrugia)

For a full list of changes in this release, please see the ChangeLog:

http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-11.6.0

Thank you for your continued support of Asterisk!

diffstat:

 comms/asterisk/Makefile                         |    7 +-
 comms/asterisk/distinfo                         |   23 ++-
 comms/asterisk/patches/patch-apps_app__meetme.c |  137 ++++++++++++++++++++++++
 comms/asterisk/patches/patch-apps_app__queue.c  |   36 +++---
 comms/asterisk/patches/patch-main_format.c      |   17 ++
 comms/asterisk/patches/patch-main_http.c        |   22 +++
 comms/asterisk/patches/patch-main_udptl.c       |   19 ++-
 comms/asterisk/patches/patch-res_res__xmpp.c    |   68 +++++-----
 8 files changed, 262 insertions(+), 67 deletions(-)

diffs (truncated from 703 to 300 lines):

diff -r 33c81fa8f323 -r fdf9306e55a8 comms/asterisk/Makefile
--- a/comms/asterisk/Makefile   Sun Dec 22 21:32:36 2013 +0000
+++ b/comms/asterisk/Makefile   Mon Dec 23 01:34:03 2013 +0000
@@ -1,13 +1,12 @@
-# $NetBSD: Makefile,v 1.101 2013/10/19 09:07:00 adam Exp $
+# $NetBSD: Makefile,v 1.102 2013/12/23 01:34:03 jnemeth Exp $
 #
 # NOTE: when updating this package, there are two places that sound
 #       tarballs need to be checked
 
-DISTNAME=      asterisk-11.5.1
+DISTNAME=      asterisk-11.6.1
 DIST_SUBDIR=   ${PKGNAME_NOREV}
 DISTFILES=     ${DEFAULT_DISTFILES}
 EXTRACT_ONLY=  ${DISTNAME}.tar.gz
-PKGREVISION=   3
 CATEGORIES=    comms net audio
 MASTER_SITES=  http://downloads.asterisk.org/pub/telephony/asterisk/ \
                http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/ \
@@ -37,6 +36,8 @@
 CONFIGURE_ARGS+=       --without-gtk2
 # XXX remove when lang/lua gets builtin.mk
 CONFIGURE_ARGS+=       --without-lua
+#JMN doesn't build properly on NetBSD, remove when -current is fixed
+CONFIGURE_ARGS+=       --without-srtp
 
 INSTALL_TARGET=                install samples
 INSTALLATION_DIRS+=    lib/pkgconfig share/doc/${PKGBASE}
diff -r 33c81fa8f323 -r fdf9306e55a8 comms/asterisk/distinfo
--- a/comms/asterisk/distinfo   Sun Dec 22 21:32:36 2013 +0000
+++ b/comms/asterisk/distinfo   Mon Dec 23 01:34:03 2013 +0000
@@ -1,16 +1,17 @@
-$NetBSD: distinfo,v 1.60 2013/08/30 05:49:51 jnemeth Exp $
+$NetBSD: distinfo,v 1.61 2013/12/23 01:34:03 jnemeth Exp $
 
-SHA1 (asterisk-11.5.1/asterisk-11.5.1.tar.gz) = fd2d568dbb6d75be17b141466ee3e276d4910e23
-RMD160 (asterisk-11.5.1/asterisk-11.5.1.tar.gz) = b48db50357cb04d5f32f98ef958c9c2603de5ada
-Size (asterisk-11.5.1/asterisk-11.5.1.tar.gz) = 30580447 bytes
-SHA1 (asterisk-11.5.1/asterisk-extra-sounds-en-gsm-1.4.13.tar.gz) = 3aac6cf4a07cb2644b7b5369c618b07561619f9f
-RMD160 (asterisk-11.5.1/asterisk-extra-sounds-en-gsm-1.4.13.tar.gz) = 5dc9696c54d2233cf74835fe7ccd2c1791f20041
-Size (asterisk-11.5.1/asterisk-extra-sounds-en-gsm-1.4.13.tar.gz) = 4407925 bytes
+SHA1 (asterisk-11.6.1/asterisk-11.6.1.tar.gz) = 84293900e0f504c0cbd85d437c914a9ea9f2f6e8
+RMD160 (asterisk-11.6.1/asterisk-11.6.1.tar.gz) = 75404f8ab834382e24942f5baf4cea390639f143
+Size (asterisk-11.6.1/asterisk-11.6.1.tar.gz) = 34759138 bytes
+SHA1 (asterisk-11.6.1/asterisk-extra-sounds-en-gsm-1.4.13.tar.gz) = 3aac6cf4a07cb2644b7b5369c618b07561619f9f
+RMD160 (asterisk-11.6.1/asterisk-extra-sounds-en-gsm-1.4.13.tar.gz) = 5dc9696c54d2233cf74835fe7ccd2c1791f20041
+Size (asterisk-11.6.1/asterisk-extra-sounds-en-gsm-1.4.13.tar.gz) = 4407925 bytes
 SHA1 (patch-Makefile) = ed581d46026e8e89ed8be374c7085efca19911d2
 SHA1 (patch-apps_app__confbridge.c) = c815905994355a19c32e8e3e2eb5dc9f1679eb29
 SHA1 (patch-apps_app__dial.c) = 0f78d2571af88384a2d472ece08bf4b06f9ad211
 SHA1 (patch-apps_app__followme.c) = a54e08d0dd0b6ff12281d4b7b8447707c1cbe20a
-SHA1 (patch-apps_app__queue.c) = 5bdb602a709060a1ffca688830930f1ca6bc5841
+SHA1 (patch-apps_app__meetme.c) = 73485931d63b6482aa549ee73ed6a72ec0e5f9a0
+SHA1 (patch-apps_app__queue.c) = 9d78c6fdaaf7f583f3af8972d32ed3b2c3e67d41
 SHA1 (patch-apps_app__skel.c) = e661a53b61d36343c54be7ad9ea6cde6cb10f180
 SHA1 (patch-apps_app__sms.c) = d89b27a9df04d4da98d562241c07d25d182baefc
 SHA1 (patch-apps_confbridge_conf__config__parser.c) = 42d5a6e2ce837111d06fa9154c7f66403cb83553
@@ -32,18 +33,20 @@
 SHA1 (patch-main_asterisk.c) = df7bcdaeb2fc90f9fdc1b16388fbb5cf7eba141c
 SHA1 (patch-main_config__options.c) = e49a946da99546684e8988ca4301bcacbb415987
 SHA1 (patch-main_features.c) = 1c11207c60ce53c1101141e07ae04d0ddb838450
+SHA1 (patch-main_format.c) = a6d446c3de883cf3ef768d03d39e8d8db068b750
+SHA1 (patch-main_http.c) = 1d3d6b47d1ced22faf79fb17c56e7a3067b7c892
 SHA1 (patch-main_manager.c) = 754c77f373bff93cbd33e907823effc12824dd45
 SHA1 (patch-main_named__acl.c) = 48c23ed0e558299679bbfc9e564383f9f7dd181f
 SHA1 (patch-main_netsock.c) = 015796266b9806425180c9bb05a1907116ef086d
 SHA1 (patch-main_sched.c) = 73759369470b575e73ca78f9cff096ebb477c9b1
 SHA1 (patch-main_stdtime_localtime.c) = 1a5fe07f174fc81d1a59e08a8e5768e99ec46da1
-SHA1 (patch-main_udptl.c) = d575d0c6b6fc1eae9623dfd2c27609e74d25a38c
+SHA1 (patch-main_udptl.c) = 260586e4203b4bf51737ba171cbfe57621de8728
 SHA1 (patch-main_utils.c) = e509c0ea81624b7404a535a3e8be563ce58039f6
 SHA1 (patch-pbx_pbx__dundi.c) = 2823c48d64d2b96abb5cf627045d17282629521b
 SHA1 (patch-res_pjproject_aconfigure) = 0095894c5daac2dec6a9ec745c0ecb8d46c0b73a
 SHA1 (patch-res_pjproject_aconfigure.ac) = cbabe4a5f1888e180c93404324ddb96728dc20b9
 SHA1 (patch-res_pjproject_build.symbian_makedef.sh) = 37781fe307564ad827e9be67f507f84230ebf299
-SHA1 (patch-res_res__xmpp.c) = 456a69a763b280a0e735899689de1facd1cd5a62
+SHA1 (patch-res_res__xmpp.c) = 5296a4f7454e432592a058939c7b0f2e328d53e2
 SHA1 (patch-sounds_Makefile) = 792c2e25e1c8334fe8c9038b8b630376a5894c31
 SHA1 (patch-tests_test__abstract__jb.c) = 42cfa303fc2e399aa9fe3bebf51464d0776e171c
 SHA1 (patch-tests_test__config.c) = fa049dc1fedb8a0c898afa6848406d191acb54d3
diff -r 33c81fa8f323 -r fdf9306e55a8 comms/asterisk/patches/patch-apps_app__meetme.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/comms/asterisk/patches/patch-apps_app__meetme.c   Mon Dec 23 01:34:03 2013 +0000
@@ -0,0 +1,137 @@
+$NetBSD: patch-apps_app__meetme.c,v 1.1 2013/12/23 01:34:03 jnemeth Exp $
+
+--- apps/app_meetme.c.orig     2013-09-13 13:48:34.000000000 +0000
++++ apps/app_meetme.c
+@@ -5001,6 +5001,8 @@ static int user_chan_cb(void *obj, void 
+ 
+ /*! \brief The MeetMeadmin application 
+ 
++RAII_DECL(struct ast_conf_user *, eject_user, ao2_cleanup);
++
+   MeetMeAdmin(confno, command, caller) */
+ static int admin_exec(struct ast_channel *chan, const char *data) {
+       char *params;
+@@ -5082,7 +5084,7 @@ static int admin_exec(struct ast_channel
+       case 101: /* e: Eject last user*/
+       {
+               int max_no = 0;
+-              RAII_VAR(struct ast_conf_user *, eject_user, NULL, ao2_cleanup);
++              RAII_VAR(struct ast_conf_user *, eject_user, NULL);
+ 
+               ao2_callback(cnf->usercontainer, OBJ_NODATA, user_max_cmp, &max_no);
+               eject_user = ao2_find(cnf->usercontainer, &max_no, 0);
+@@ -5840,10 +5842,13 @@ static void answer_trunk_chan(struct ast
+       ast_indicate(chan, -1);
+ }
+ 
++RAII_DECL(struct sla_station *, station, ao2_cleanup);
++RAII_DECL(struct sla_trunk_ref *, trunk_ref, ao2_cleanup);
++
+ static void *run_station(void *data)
+ {
+-      RAII_VAR(struct sla_station *, station, NULL, ao2_cleanup);
+-      RAII_VAR(struct sla_trunk_ref *, trunk_ref, NULL, ao2_cleanup);
++      RAII_VAR(struct sla_station *, station, NULL);
++      RAII_VAR(struct sla_trunk_ref *, trunk_ref, NULL);
+       struct ast_str *conf_name = ast_str_create(16);
+       struct ast_flags64 conf_flags = { 0 };
+       struct ast_conference *conf;
+@@ -6004,12 +6009,14 @@ static struct sla_ringing_trunk *sla_cho
+       return ringing_trunk;
+ }
+ 
++RAII_DECL(struct sla_trunk_ref *, s_trunk_ref, ao2_cleanup);
++
+ static void sla_handle_dial_state_event(void)
+ {
+       struct sla_ringing_station *ringing_station;
+ 
+       AST_LIST_TRAVERSE_SAFE_BEGIN(&sla.ringing_stations, ringing_station, entry) {
+-              RAII_VAR(struct sla_trunk_ref *, s_trunk_ref, NULL, ao2_cleanup);
++              RAII_VAR(struct sla_trunk_ref *, s_trunk_ref, NULL);
+               struct sla_ringing_trunk *ringing_trunk = NULL;
+               struct run_station_args args;
+               enum ast_dial_result dial_res;
+@@ -6222,7 +6229,7 @@ static struct sla_trunk_ref *sla_find_tr
+ static int sla_check_station_delay(struct sla_station *station, 
+       struct sla_ringing_trunk *ringing_trunk)
+ {
+-      RAII_VAR(struct sla_trunk_ref *, trunk_ref, NULL, ao2_cleanup);
++      RAII_VAR(struct sla_trunk_ref *, trunk_ref, NULL);
+       unsigned int delay = UINT_MAX;
+       int time_left, time_elapsed;
+ 
+@@ -6633,8 +6640,8 @@ static void *dial_trunk(void *data)
+       char conf_name[MAX_CONFNUM];
+       struct ast_conference *conf;
+       struct ast_flags64 conf_flags = { 0 };
+-      RAII_VAR(struct sla_trunk_ref *, trunk_ref, args->trunk_ref, ao2_cleanup);
+-      RAII_VAR(struct sla_station *, station, args->station, ao2_cleanup);
++      RAII_VAR(struct sla_trunk_ref *, trunk_ref, args->trunk_ref);
++      RAII_VAR(struct sla_station *, station, args->station);
+       int caller_is_saved;
+       struct ast_party_caller caller;
+       int last_state = 0;
+@@ -6781,8 +6788,8 @@ static struct sla_trunk_ref *sla_choose_
+ static int sla_station_exec(struct ast_channel *chan, const char *data)
+ {
+       char *station_name, *trunk_name;
+-      RAII_VAR(struct sla_station *, station, NULL, ao2_cleanup);
+-      RAII_VAR(struct sla_trunk_ref *, trunk_ref, NULL, ao2_cleanup);
++      RAII_VAR(struct sla_station *, station, NULL);
++      RAII_VAR(struct sla_trunk_ref *, trunk_ref, NULL);
+       char conf_name[MAX_CONFNUM];
+       struct ast_flags64 conf_flags = { 0 };
+       struct ast_conference *conf;
+@@ -7000,12 +7007,14 @@ AST_APP_OPTIONS(sla_trunk_opts, BEGIN_OP
+       AST_APP_OPTION_ARG('M', SLA_TRUNK_OPT_MOH, SLA_TRUNK_OPT_ARG_MOH_CLASS),
+ END_OPTIONS );
+ 
++RAII_DECL(struct sla_trunk *, trunk, ao2_cleanup);
++
+ static int sla_trunk_exec(struct ast_channel *chan, const char *data)
+ {
+       char conf_name[MAX_CONFNUM];
+       struct ast_conference *conf;
+       struct ast_flags64 conf_flags = { 0 };
+-      RAII_VAR(struct sla_trunk *, trunk, NULL, ao2_cleanup);
++      RAII_VAR(struct sla_trunk *, trunk, NULL);
+       struct sla_ringing_trunk *ringing_trunk;
+       AST_DECLARE_APP_ARGS(args,
+               AST_APP_ARG(trunk_name);
+@@ -7101,7 +7110,7 @@ static int sla_trunk_exec(struct ast_cha
+ static enum ast_device_state sla_state(const char *data)
+ {
+       char *buf, *station_name, *trunk_name;
+-      RAII_VAR(struct sla_station *, station, NULL, ao2_cleanup);
++      RAII_VAR(struct sla_station *, station, NULL);
+       struct sla_trunk_ref *trunk_ref;
+       enum ast_device_state res = AST_DEVICE_INVALID;
+ 
+@@ -7262,7 +7271,7 @@ static void sla_trunk_destructor(void *o
+ 
+ static int sla_build_trunk(struct ast_config *cfg, const char *cat)
+ {
+-      RAII_VAR(struct sla_trunk *, trunk, NULL, ao2_cleanup);
++      RAII_VAR(struct sla_trunk *, trunk, NULL);
+       struct ast_variable *var;
+       const char *dev;
+       int existing_trunk = 0;
+@@ -7351,7 +7360,7 @@ static int sla_build_trunk(struct ast_co
+  */
+ static void sla_add_trunk_to_station(struct sla_station *station, struct ast_variable *var)
+ {
+-      RAII_VAR(struct sla_trunk *, trunk, NULL, ao2_cleanup);
++      RAII_VAR(struct sla_trunk *, trunk, NULL);
+       struct sla_trunk_ref *trunk_ref = NULL;
+       struct sla_station_ref *station_ref;
+       char *trunk_name, *options, *cur;
+@@ -7435,7 +7444,7 @@ static void sla_add_trunk_to_station(str
+ 
+ static int sla_build_station(struct ast_config *cfg, const char *cat)
+ {
+-      RAII_VAR(struct sla_station *, station, NULL, ao2_cleanup);
++      RAII_VAR(struct sla_station *, station, NULL);
+       struct ast_variable *var;
+       const char *dev;
+       int existing_station = 0;
diff -r 33c81fa8f323 -r fdf9306e55a8 comms/asterisk/patches/patch-apps_app__queue.c
--- a/comms/asterisk/patches/patch-apps_app__queue.c    Sun Dec 22 21:32:36 2013 +0000
+++ b/comms/asterisk/patches/patch-apps_app__queue.c    Mon Dec 23 01:34:03 2013 +0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-apps_app__queue.c,v 1.2 2013/05/05 01:32:35 jnemeth Exp $
+$NetBSD: patch-apps_app__queue.c,v 1.3 2013/12/23 01:34:03 jnemeth Exp $
 
---- apps/app_queue.c.orig      2013-01-09 00:03:40.000000000 +0000
+--- apps/app_queue.c.orig      2013-09-12 00:02:37.000000000 +0000
 +++ apps/app_queue.c
-@@ -4717,7 +4717,7 @@ static int wait_our_turn(struct queue_en
+@@ -4735,7 +4735,7 @@ static int wait_our_turn(struct queue_en
  
                        if ((status = get_member_status(qe->parent, qe->max_penalty, qe->min_penalty, qe->parent->leavewhenempty))) {
                                *reason = QUEUE_LEAVEEMPTY;
@@ -11,7 +11,7 @@
                                leave_queue(qe);
                                break;
                        }
-@@ -4957,12 +4957,12 @@ static void send_agent_complete(const st
+@@ -4975,12 +4975,12 @@ static void send_agent_complete(const st
                "Channel: %s\r\n"
                "Member: %s\r\n"
                "MemberName: %s\r\n"
@@ -27,7 +27,7 @@
                qe->parent->eventwhencalled == QUEUE_EVENT_VARIABLES ? vars2manager(qe->chan, vars, vars_len) : "");
  }
  
-@@ -5005,9 +5005,9 @@ static void queue_transfer_fixup(void *d
+@@ -5023,9 +5023,9 @@ static void queue_transfer_fixup(void *d
        int callcompletedinsl = qtds->callcompletedinsl;
        struct ast_datastore *datastore;
  
@@ -39,8 +39,8 @@
 +                              (intmax_t) (time(NULL) - callstart), qe->opos);
  
        update_queue(qe->parent, member, callcompletedinsl, (time(NULL) - callstart));
-       
-@@ -5524,7 +5524,7 @@ static int try_calling(struct queue_ent 
+ 
+@@ -5542,7 +5542,7 @@ static int try_calling(struct queue_ent 
                        } else if (ast_check_hangup(qe->chan)) {
                                /* Caller must have hung up just before being connected */
                                ast_log(LOG_NOTICE, "Caller was about to talk to agent on %s but the caller hungup.\n", ast_channel_name(peer));
@@ -49,7 +49,7 @@
                                record_abandoned(qe);
                                ast_autoservice_chan_hangup_peer(qe->chan, peer);
                                ao2_ref(member, -1);
-@@ -5573,8 +5573,8 @@ static int try_calling(struct queue_ent 
+@@ -5591,8 +5591,8 @@ static int try_calling(struct queue_ent 
                /* if setqueueentryvar is defined, make queue entry (i.e. the caller) variables available to the channel */
                /* use  pbx_builtin_setvar to set a load of variables with one call */
                if (qe->parent->setqueueentryvar) {
@@ -60,7 +60,7 @@
                        pbx_builtin_setvar_multiple(qe->chan, interfacevar);
                        pbx_builtin_setvar_multiple(peer, interfacevar);
                }
-@@ -5791,8 +5791,8 @@ static int try_calling(struct queue_ent 
+@@ -5809,8 +5809,8 @@ static int try_calling(struct queue_ent 
                        }
                }
                qe->handled++;
@@ -71,7 +71,7 @@
  
                if (ast_channel_cdr(qe->chan)) {
                        struct ast_cdr *cdr;
-@@ -5846,12 +5846,12 @@ static int try_calling(struct queue_ent 
+@@ -5864,12 +5864,12 @@ static int try_calling(struct queue_ent 
                                        "Channel: %s\r\n"
                                        "Member: %s\r\n"
                                        "MemberName: %s\r\n"
@@ -87,7 +87,7 @@
                                        qe->parent->eventwhencalled == QUEUE_EVENT_VARIABLES ? vars2manager(qe->chan, vars, sizeof(vars)) : "");
                ast_copy_string(oldcontext, ast_channel_context(qe->chan), sizeof(oldcontext));
                ast_copy_string(oldexten, ast_channel_exten(qe->chan), sizeof(oldexten));
-@@ -5883,17 +5883,17 @@ static int try_calling(struct queue_ent 
+@@ -5901,17 +5901,17 @@ static int try_calling(struct queue_ent 
  
                        /* detect a blind transfer */



Home | Main Index | Thread Index | Old Index