]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
13 years agoEnsure overlapping hold flags do not conflict
Kinsey Moore [Wed, 6 Jun 2012 16:09:10 +0000 (16:09 +0000)] 
Ensure overlapping hold flags do not conflict

When changing between different modes of hold, the flags were not being
cleared out properly causing a failure to change hold states.

(closes issue ASTERISK-19919)
Patch-by: Morten Tryfoss
Reported-by: Morten Tryfoss
........

Merged revisions 368586 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368587 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix parked call performing a DTMF blind transfer after being retrieved.
Richard Mudgett [Wed, 6 Jun 2012 01:10:10 +0000 (01:10 +0000)] 
Fix parked call performing a DTMF blind transfer after being retrieved.

When a parked call was retrieved from the parking lot, it could not do a
blind transfer because it caused the involved calls to be hung up
unconditionally.

* Made the ParkedCall application return the ast_bridge_call() return
value.

(closes issue ABE-2862)
Reported by: Vlad Povorozniuc
........

Merged revisions 368567 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368568 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoResolve some build warnings
Kinsey Moore [Tue, 5 Jun 2012 15:27:01 +0000 (15:27 +0000)] 
Resolve some build warnings

My newly upgraded compiler caught these usages of uninitialized values.
They weren't actually used.
........

Merged revisions 368533 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368536 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoEnsure that pages and emails are sent using RFC822-compliant date format
Kinsey Moore [Tue, 5 Jun 2012 15:19:58 +0000 (15:19 +0000)] 
Ensure that pages and emails are sent using RFC822-compliant date format

When localization was added to app_voicemail, these headers were altered
when they should have remained in en_US format for RFC compliance. This
reverts the changes to those two lines.

(closes issue ASTERISK-19876)
........

Merged revisions 368520 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368524 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoRelay proper SIP responses on calling side.
Mark Michelson [Mon, 4 Jun 2012 22:02:26 +0000 (22:02 +0000)] 
Relay proper SIP responses on calling side.

Revision 351130 broke corect HANGUPCAUSE setting
for the 404 case in chan_sip. Other cases were also
potentially broken. This patch fixes the relaying
of causes to be what they used to be.

(closes issue ASTERISK-19914)
Reported by Pavel Troller
Tested by Walter Doekes (via a reviewboard test to be committed later)
Patches:
chan_sip.diff uploaded by Pavel Troller (license #6302)
........

Merged revisions 368498 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368499 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoDocument BLINDTRANSFER behavior change.
Richard Mudgett [Mon, 4 Jun 2012 21:11:42 +0000 (21:11 +0000)] 
Document BLINDTRANSFER behavior change.

(issue ASTERISK-19322)

(closes issue ASTERISK-19875)
Reported by: call
........

Merged revisions 368469 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368470 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix potential deadlock between masquerade and chan_local.
Richard Mudgett [Mon, 4 Jun 2012 19:08:52 +0000 (19:08 +0000)] 
Fix potential deadlock between masquerade and chan_local.

* Restructure ast_do_masquerade() to not hold channel locks while it calls
ast_indicate().

* Simplify many calls to ast_do_masquerade() since it will never return a
failure now.  If it does fail internally because a channel driver callback
operation failed, the only thing ast_do_masquerade() can do is generate a
warning message about strange things may happen and press on.

* Fixed the call to ast_bridged_channel() in ast_do_masquerade().  This
change fixes half of the deadlock reported in ASTERISK-19801 between
masquerades and chan_iax.

(closes issue ASTERISK-19537)
Reported by: rmudgett
Tested by: rmudgett

Review: https://reviewboard.asterisk.org/r/1915/
........

Merged revisions 368405 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368407 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix deadlock when Gosub used with alternate dialplan switches.
Richard Mudgett [Fri, 1 Jun 2012 23:24:25 +0000 (23:24 +0000)] 
Fix deadlock when Gosub used with alternate dialplan switches.

Attempting to remove a channel from autoservice with the channel lock held
will result in deadlock.

* Restructured gosub_exec() to not call ast_parseable_goto() and
ast_exists_extension() with the channel lock held.

(closes issue ASTERISK-19764)
Reported by: rmudgett
Tested by: rmudgett
........

Merged revisions 368308 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368310 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoImprove SDP parsing warning messages
Kevin P. Fleming [Fri, 1 Jun 2012 20:22:44 +0000 (20:22 +0000)] 
Improve SDP parsing warning messages

* 'Unsupported media type' is only reported when that is in fact the case,
   not when a supported media type is included in an 'm' line that has an
   invalid format.

* All warning messages related to parsing 'm' lines now include the 'm' line contents.

* (minor bugfix) newline added to port-number-zero warning messages.

* Warning messages improved to use RFC-specified terminology for various items.

* Warnings for offers that include more than one port for a single media type now
  include the media type.

Review: https://reviewboard.asterisk.org/r/1811/
........

Merged revisions 368218 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368267 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAdd documentation to function CHANNEL for options echocan_mode and buffers
Michael L. Young [Fri, 1 Jun 2012 03:28:09 +0000 (03:28 +0000)] 
Add documentation to function CHANNEL for options echocan_mode and buffers

The ability to set "echocan_mode" and "buffers" through the dialplan was added
to chan_dahdi some time ago.  This patch adds some documentation to
func_channel.

(Closes issue ASTERISK-19911)
Reported by: Dale Noll
Tested by: Michael L. Young
Patches:
  asterisk-19911-branch18.diff uploaded by Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/1949/
........

Merged revisions 368092 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368093 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoCoverity Report: Fix issues for error type REVERSE_INULL (core modules)
Richard Mudgett [Thu, 31 May 2012 18:20:15 +0000 (18:20 +0000)] 
Coverity Report: Fix issues for error type REVERSE_INULL (core modules)

* Fixes findings: 0-2,5,7-15,24-26,28-31

(issue ASTERISK-19648)
Reported by: Matt Jordan
........

Merged revisions 368039 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@368042 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoUse the DEADLOCK_AVOIDANCE() macro instead.
Richard Mudgett [Wed, 30 May 2012 18:07:28 +0000 (18:07 +0000)] 
Use the DEADLOCK_AVOIDANCE() macro instead.

(issue ASTERISK-19854)
........

Merged revisions 367980 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367981 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix deadlock when executing CLI "pri show channels" and "ss7 show channels" commands.
Richard Mudgett [Wed, 30 May 2012 17:39:24 +0000 (17:39 +0000)] 
Fix deadlock when executing CLI "pri show channels" and  "ss7 show channels" commands.

* Fix sig_pri_lock_owner() to avoid deadlock properly.

* Code pri_grab() better.

* Fix sig_ss7_lock_owner() to avoid deadlock properly.

* Code ss7_grab() better.

(closes issue ASTERISK-19854)
Reported by: Jaxon
Patches:
      jira_asterisk_19854_v1.8.6.patch (license #5621) patch uploaded by rmudgett (Modified to do the same thing to sig_ss7)
Tested by: Jaxon
........

Merged revisions 367976 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367978 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoCoverity Report: Fix issues for error type REVERSE_INULL (deprecated modules)
Richard Mudgett [Tue, 29 May 2012 22:28:55 +0000 (22:28 +0000)] 
Coverity Report: Fix issues for error type REVERSE_INULL (deprecated modules)

* Fix only issue pointed out by deprecated_REVERSE_INULL.txt for
app_meetme.c in find_user().

* Change use of %i to %d in sscanf() in find_user().  The use of %i gives
unexpected parsing because it can accept hex, octal, and decimal integer
formats.

* Changed other uses of %i in app_meetme() to use %d for consistency.

(issue ASTERISK-19648)
Reported by: Matt Jordan
........

Merged revisions 367906 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367907 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAST-2012-008: Fix remote crash vulnerability in chan_skinny
Matthew Jordan [Tue, 29 May 2012 18:33:20 +0000 (18:33 +0000)] 
AST-2012-008: Fix remote crash vulnerability in chan_skinny

When a skinny session is unregistered, the corresponding device pointer is set
to NULL in the channel private data.  If the client was not in the on-hook state
at the time the connection was closed, the device pointer can later be
dereferened if a message or channel event attempts to use a line's pointer to
said device.

The patches prevent this from occurring by checking the line's pointer in
message handlers and channel callbacks that can fire after an unregistration
attempt.

(closes issue ASTERISK-19905)
Reported by: Christoph Hebeisen
Tested by: mjordan, Damien Wedhorn
Patches:
  AST-2012-008-1.8.diff uploaded by mjordan (license 6283)
  AST-2012-008-10.diff uploaded by mjordan (licesen 6283)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367844 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAST-2012-007: Fix IAX receiving HOLD without suggested MOH class crash.
Richard Mudgett [Fri, 25 May 2012 16:30:55 +0000 (16:30 +0000)] 
AST-2012-007: Fix IAX receiving HOLD without suggested MOH class crash.

* Made schedule_delivery() set the received frame f->data.ptr to NULL if
the datalen is zero.

* Fix queue_signalling() memcpy() size error.

* Made queue_signalling() not use C++ keyword variable names.

(closes issue ASTERISK-19597)
Reported by: mgrobecker
Patches:
      jira_asterisk_19597_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett, Michael L. Young
........

Merged revisions 367781 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367782 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix pvt_sip for inbound call to use peer's allowtransfer setting
Michael L. Young [Fri, 25 May 2012 02:29:26 +0000 (02:29 +0000)] 
Fix pvt_sip for inbound call to use peer's allowtransfer setting

The pvt_sip allowtransfer was not being set to that of the peer's setting.
Therefore, the global allowtransfer setting was being used instead which would
lead to calls not being transfered if the global setting was set to 'no' despite
the setting on the peer being 'yes' and vice versa, calls would be allowed to
transfer even if the peer's setting was 'no' but the global setting was 'yes'.

(Closes issue ASTERISK-19856)
Reported by: Jacek
Tested by: Michael L. Young, Jacek
Patches:
issue-asterisk-19856-branch10-v3.diff uploaded by
                                                 Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/1923/
........

Merged revisions 367730 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367731 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix Dial I option ignored if dial forked and one fork redirects.
Richard Mudgett [Thu, 24 May 2012 22:29:23 +0000 (22:29 +0000)] 
Fix Dial I option ignored if dial forked and one fork redirects.

The Dial and Queue I option is intended to block connected line updates
and redirecting updates.  However, it is a feature that when a call is
locally redirected, the I option is disabled if the redirected call runs
as a local channel so the administrator can have an opportunity to setup
new connected line information.  Unfortunately, the Dial and Queue I
option is disabled for *all* forked calls if one of those calls is
redirected.

* Make the Dial and Queue I option apply to each outgoing call leg
independently.  Now if one outgoing call leg is locally redirected, the
other outgoing calls are not affected.

* Made Dial not pass any redirecting updates when forking calls.
Redirecting updates do not make sense for this scenario.

* Made Queue not pass any redirecting updates when using the ringall
strategy.  Redirecting updates do not make sense for this scenario.

* Fixed deadlock potential with chan_local when Dial and Queue send
redirecting updates for a local redirect.

* Converted the Queue stillgoing flag to a boolean bitfield.

(closes issue ASTERISK-19511)
Reported by: rmudgett
Tested by: rmudgett

Review: https://reviewboard.asterisk.org/r/1920/
........

Merged revisions 367678 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367679 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix crash in ConfBridge when user announcement is played for more than 2 users
Matthew Jordan [Thu, 24 May 2012 13:32:33 +0000 (13:32 +0000)] 
Fix crash in ConfBridge when user announcement is played for more than 2 users

A patch introduced in r354938 made it so that ConfBridge would not attempt to
play sound files if those files did not exist.  Unfortunately, ConfBridge uses
the same underlying function, play_sound_helper, to playback both sound files
and numbers to callers.  When a number is being played back, the name of the
sound file is expected to be NULL.  This NULL value was passed into a function
that tested for the existance of a sound file and is not tolerant to NULL
file names, causing a crash.

This patch fixes the behavior, such that if a sound file does not exist we
do not attempt to play it, but we only attempt that check if the a sound file
was specified in the first place.  If a sound file was not specified, we use
the 'play number' logic in the helper function.

(closes issue ASTERISK-19899)
Reported by: Florian Gilcher
Tested by: Florian Gilcher
patches:
  asterisk-19899.diff uploaded by mjordan (license 6283)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367562 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix WaitExten(x,m(musicclass)) string termination.
Richard Mudgett [Wed, 23 May 2012 23:16:49 +0000 (23:16 +0000)] 
Fix WaitExten(x,m(musicclass)) string termination.

The AST_CONTROL_HOLD MOH class from the WaitExten application can now be
queued onto a channel, passed over local channels with the /m option, and
passed over IAX channels.
........

Merged revisions 367469 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367470 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoOnly call SSL_CTX_free if DO_SSL is defined.
Mark Michelson [Wed, 23 May 2012 20:29:03 +0000 (20:29 +0000)] 
Only call SSL_CTX_free if DO_SSL is defined.

Thanks to Paul Belanger for pointing out this error.
........

Merged revisions 367416 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367417 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoRe-add LastMsgsSent value for SIP peers
Matthew Jordan [Wed, 23 May 2012 13:25:04 +0000 (13:25 +0000)] 
Re-add LastMsgsSent value for SIP peers

Previously, MWI logic utilized a counter called 'lastmsgssent' to know whether
or not MWI NOTIFY requests had been sent to a specific peer.  When MWI
notifications were changed to use the internal event framework, this value was
no longer needed for its original purpose.  Hence, it was no longer updated
with the new/old message counts for a peer.  The value was previously removed
for Asterisk 10; however, since it was still present in Asterisk 1.8 and still
useful for reporting purposes, it was decided to re-add the value.

This patch re-adds the 'LastMsgsSent' field in the response to an AMI/CLI 'sip
show peer [peer]' command, and makes it so that the value of lastmsgssent is
updated appropriately. The value should now display the new/old message counts
for a particular peer.

(closes issue ASTERISK-17866)
Reported by: Steve Davies
patches by:
  ast-17866-rb1272.patch (License #5041 by irroot)
  Modified slightly for this commit

Review: https://reviewboard.asterisk.org/r/1939
........

Merged revisions 367362 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367369 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix race condition for CEL LINKEDID_END event
Terry Wilson [Tue, 22 May 2012 17:21:51 +0000 (17:21 +0000)] 
Fix race condition for CEL LINKEDID_END event

This patch fixes to situations that could cause the CEL LINKEDID_END event to
be missed.

1) During a core stop gracefully, modules are unloaded when ast_active_channels
== 0. The LINKDEDID_END event fires during the channel destructor. This means
that occasionally, the cel_* module will be unloaded before the channel is
destroyed. It seemed generally useful to wait until the refcount of all
channels == 0 before unloading, so I added a channel counter and used it in the
shutdown code.

2) During a masquerade, ast_channel_change_linkedid is called. It calls
ast_cel_check_retire_linkedid which unrefs the linkedid in the linkedids
container in cel.c. It didn't ref the new linkedid. Now it does.

Review: https://reviewboard.asterisk.org/r/1900/
........

Merged revisions 367292 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367299 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoResolve crash in subscribing for MWI notifications
Terry Wilson [Tue, 22 May 2012 16:17:46 +0000 (16:17 +0000)] 
Resolve crash in subscribing for MWI notifications

ASTOBJ_UNREF sets the variable to NULL after unreffing it, so the variable
should definitely not be used after that. To solve this in the two cases
that affect subscribing for MWI notifications, we instead save the ref
locally, and unref them in the error conditions.

(closes issue ASTERISK-19827)
Reported by: B. R
Review: https://reviewboard.asterisk.org/r/1940/
........

Merged revisions 367266 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367267 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAddress MISSING_BREAK static analysis reports some more.
Mark Michelson [Fri, 18 May 2012 17:50:18 +0000 (17:50 +0000)] 
Address MISSING_BREAK static analysis reports some more.

This addresses core findings 4 and 6.

Moises Silva helped me by stating that a break could be
safely added to the case where it is added in chan_dahdi.c

In say.c, I have added a comment indicating that static analysis
complains but that it is currently unknown if this is correct.

This fixes all core findings of this type.

(closes issue ASTERISK-19662)
reported by Matthew Jordan
........

Merged revisions 367027 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367028 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix memory leak of SSL_CTX structures in TLS core.
Mark Michelson [Fri, 18 May 2012 17:00:14 +0000 (17:00 +0000)] 
Fix memory leak of SSL_CTX structures in TLS core.

SSL_CTX structures were allocated but never freed. This was a bigger
issue for clients than servers since new SSL_CTX structures could be
allocated for each connection. Servers, on the other hand, typically
set up a single SSL_CTX for their lifetime.

This is solved in two ways:

1. In __ssl_setup(), if a tcptls_cfg has an ssl_ctx on it, it is
freed so that a new one can take its place.
2. A companion to ast_ssl_setup() called ast_ssl_teardown() has
been added so that servers can properly free their SSL_CTXs.

(issue ASTERISK-19278)
........

Merged revisions 367002 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@367003 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix more memory leaks
Matthew Jordan [Fri, 18 May 2012 15:45:42 +0000 (15:45 +0000)] 
Fix more memory leaks

This patch adds to what was fixed in r366880.  Specifically, it addresses the
following:

* chan_sip:  dispose of an allocated frame in off nominal code paths in
             sip_rtp_read
* func_odbc: when disposing of an allocated resultset, ensure that any rows
             that were appended to that resultset are also disposed of
* cli:       free the created return string buffer in another off nominal code
             path

(issue ASTERISK-19665)
Reported by: Matt Jordan

Review: https://reviewboard.asterisk.org/r/1922/
........

Merged revisions 366944 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366948 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoReorder and renumber tests appropriately
Kinsey Moore [Fri, 18 May 2012 14:18:47 +0000 (14:18 +0000)] 
Reorder and renumber tests appropriately

It appears that a patch did not apply properly when adding tests 12 and
13 and test 11 was duplicated.  These tests have been reordered and
renumbered such that they make sense.
........

Merged revisions 366882 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366884 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix a variety of memory leaks
Matthew Jordan [Fri, 18 May 2012 14:01:56 +0000 (14:01 +0000)] 
Fix a variety of memory leaks

This patch addresses a number of memory leaks in a variety of modules that were
found by a static analysis tool.  A brief summary of the changes:

* app_minivm:       free ast_str objects on off nominal paths
* app_page:         free the ast_dial object if the requested channel technology
                    cannot be appended to the dialing structure
* app_queue:        if a penalty rule failed to match any existing rule list
                    names, the created rule would not be inserted and its memory
                    would be leaked
* app_read:         dispose of the created silence detector in the presence of
                    off nominal circumstances
* app_voicemail:    dispose of an allocated unique ID field for MWI event
                    un-subscribe requests in off nominal paths; dispose of
                    configuration objects when using the secret.conf option
* chan_dahdi:       dispose of the allocated frame produced by ast_dsp_process
* chan_iax2:        properly unref peer in CLI command "iax2 unregister"
* chan_sip:         dispose of the allocated frame produced by sip_rtp_read's
                    call of ast_dsp_process; free memory in parse unit tests
* func_dialgroup:   properly deref ao2 object grhead in nominal path of
                    dialgroup_read
* func_odbc:        free resultset in off nominal paths of odbc_read
* cli:              free match_list in off nominal paths of CLI match completion
* config:           free comment_buffer/list_buffer when configuration file load
                    is unchanged; free the same buffers any time they were
                    created and config files were processed
* data:             free XML nodes in various places
* enum:             free context buffer in off nominal paths
* features:         free ast_call_feature in off nominal paths of applicationmap
                    config processing
* netsock2:         users of ast_sockaddr_resolve pass in an ast_sockaddr struct
                    that is allocated by the method.  Failures in
                    ast_sockaddr_resolve could result in the users of the method
                    not knowing whether or not the buffer was allocated.  The
                    method will now not allocate the ast_sockaddr struct if it
                    will return failure.
* pbx:              cleanup hash table traversals in off nominal paths; free
                    ignore pattern buffer if it already exists for the specified
                    context
* xmldoc:           cleanup various nodes when we no longer need them
* main/editline:    various cleanup of pointers not being freed before being
                    assigned to other memory, cleanup along off nominal paths
* menuselect/mxml:  cleanup of value buffer for an attribute when that attribute
                    did not specify a value
* res_calendar*:    responses are allocated via the various *_request method
                    returns and should not be allocated in the various
                    write_event methods; ensure attendee buffer is freed if no
                    data exists in the parsed node; ensure that calendar objects
                    are de-ref'd appropriately
* res_jabber:       free buffer in off nominal path
* res_musiconhold:  close the DIR* object in off nominal paths
* res_rtp_asterisk: if we run out of ports, close the rtp socket object and free
                    the rtp object
* res_srtp:         if we fail to create the session in libsrtp, destroy the
                    temporary ast_srtp object

(issue ASTERISK-19665)
Reported by: Matt Jordan

Review: https://reviewboard.asterisk.org/r/1922
........

Merged revisions 366880 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366881 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agochan_sip: Fix missed locking of opposing pvt for directmedia acl from r366547
Jonathan Rose [Thu, 17 May 2012 14:41:13 +0000 (14:41 +0000)] 
chan_sip: Fix missed locking of opposing pvt for directmedia acl from r366547

It also required deadlock avoidance since two sip_pvts structs needed to be
locked simultaneously. Trunk handles it differently, so this is a 1.8 and 10
patch only.
........

(issue AST-876)
Merged revisions 366791 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366792 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix checking bounds of array index after using it; improper sizeof
Matthew Jordan [Thu, 17 May 2012 12:57:30 +0000 (12:57 +0000)] 
Fix checking bounds of array index after using it; improper sizeof

This patch fixes two problems pointed out by a static analysis tool.

* In chan_dahdi, when an event is handled the index of the sub channel is first
  obtained.  In very off nominal cases, the method that determines the index
  can return a negative value.  In the event handling code, whether or not
  the index returned is valid was being checked after that value was used to
  index into an array.  This patch makes it so the value is checked before
  any indexing is done.

* In res_calendar_ews, sizeof was being passed a pointer instead of the struct to
  determine the amount of memory to allocate.

(issue ASTERISK-19651)
Reported by: Matt Jordan

(closes issue ASTERISK-19671)
Reported by: Matt Jordan
........

Merged revisions 366740 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366741 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoCorrect misuse of ast_strip_quoted() when getting a Diversion header's reason parameter.
Mark Michelson [Tue, 15 May 2012 23:39:06 +0000 (23:39 +0000)] 
Correct misuse of ast_strip_quoted() when getting a Diversion header's reason parameter.

The use here was assuming that the pointer would be updated, but the updated string
is actually returned by ast_strip_quoted() instead.
........

Merged revisions 366597 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366598 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agochan_sip: Check the right channel's host address for directmediapermit/deny
Jonathan Rose [Tue, 15 May 2012 20:44:59 +0000 (20:44 +0000)] 
chan_sip: Check the right channel's host address for directmediapermit/deny

Prior to this patch, when checking the addresses for directmediapermit and
denydirectmediadeny, Asterisk would check the host address of the channel
permit/deny was specified, which defers from the expectations of both
our users and the development team. Instead, directmediapermit/deny now
checks against the address of the channel that the peer with the ACL is
connected to.

(issue AST-876)
Review: https://reviewboard.asterisk.org/r/1899/
........

Merged revisions 366547 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366591 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix two more coverity constant expression result findings.
Mark Michelson [Mon, 14 May 2012 20:06:58 +0000 (20:06 +0000)] 
Fix two more coverity constant expression result findings.

These correspond to findings 0 and 1 in the core findings of
ASTERISK-19649.

After contacting Mark Spencer, he was unsure of what the intent
behind these lines of code were, so they are being axed.

For Asterisk 1.8 and 10, the output of debugging DUNDi frames
will not be changed, but for trunk the "Retry" portion will
be omitted since it does not properly distinguish retransmissions
from initial frames.

(closes issue ASTERISK-19649)
Reported by Matthew Jordan
........

Merged revisions 366409 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366412 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix broken reinvite glare scenario.
Mark Michelson [Mon, 14 May 2012 19:16:36 +0000 (19:16 +0000)] 
Fix broken reinvite glare scenario.

To make a long story short, reinvite glares were broken
because Asterisk would invert the To and From headers
when ACKing a 491 response.

The reason was because the initreq of the dialog was being
changed to the incoming glared reinvite instead of being
set to the outgoing glared reinvite. This change has three
parts

* In handle_incoming, we never will reject an ACK because it
has a to-tag present, even if we think the request may be out
of dialog.
* In handle_request_invite, we do not change the initreq when
receiving a reinvite to which we will respond with a 491.
* In handle_request_invite, several superflous settings up
pendinginvite have been removed since this is dones automatically
by transmit_response_reliable

Review: https://reviewboard.asterisk.org/r/1911
........

Merged revisions 366389 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366390 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoformat_mp3: Fix a possible crash in mp3_read().
Russell Bryant [Fri, 11 May 2012 23:59:35 +0000 (23:59 +0000)] 
format_mp3: Fix a possible crash in mp3_read().

This patch fixes a potential crash in mp3_read() by not assuming that
dbuf has enough data to finish filling up the output buffer.  The patch
also makes sure that the dbuf state gets reset after we know we read
everything out of it already.

In passing, this patch includes some other cleanups of this module,
including stripping trailing whitespace, formatting fixes based on
coding guidelines, and removing a number of unused members from the
private state struct.

(closes issue ASTERISK-19761)
Reported by: Chris Maciejewsk
Tested by: Chris Maciejewsk
........

Merged revisions 366296 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366297 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years ago* Made ast_change_name() hold the channels container lock while changing the channel...
Richard Mudgett [Thu, 10 May 2012 23:42:43 +0000 (23:42 +0000)] 
* Made ast_change_name() hold the channels container lock while changing the channel name.

* Eliminate redundant list not empty check in clone_variables().
........

Merged revisions 366240 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366241 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoResolve FORWARD_NULL static analysis warnings
Kinsey Moore [Thu, 10 May 2012 20:54:08 +0000 (20:54 +0000)] 
Resolve FORWARD_NULL static analysis warnings

This resolves core findings from ASTERISK-19650 numbers 0-2, 6, 7, 9-11, 14-20,
22-24, 28, 30-32, 34-36, 42-56, 82-84, 87, 89-90, 93-102, 104, 105, 109-111,
and 115. Finding numbers 26, 33, and 29 were already resolved.  Those skipped
were either extended/deprecated or in areas of code that shouldn't be
disturbed.

(Closes issue ASTERISK-19650)
........

Merged revisions 366167 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366168 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoCoverity Report: Fix issues for error type CHECKED_RETURN for core
Jonathan Rose [Thu, 10 May 2012 16:55:22 +0000 (16:55 +0000)] 
Coverity Report: Fix issues for error type CHECKED_RETURN for core

(issue ASTERISK-19658)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/1905/
........

Merged revisions 366094 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366106 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoClose the proper tcptls_session when session creation fails.
Mark Michelson [Thu, 10 May 2012 16:13:06 +0000 (16:13 +0000)] 
Close the proper tcptls_session when session creation fails.

(issue AST-998)
Reported by: Thomas Arimont
Tested by: Thomas Arimont
........

Merged revisions 366052 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366053 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoCoverity Report: Fix issues for error type UNINIT in Core supported modules
Jonathan Rose [Thu, 10 May 2012 15:43:06 +0000 (15:43 +0000)] 
Coverity Report: Fix issues for error type UNINIT in Core supported modules

(issue ASTERISK-19652)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/1909/
........

Merged revisions 366048 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@366049 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoBlock on frameout if the hardware has enough samples to complete a frame.
Jonathan Rose [Wed, 9 May 2012 19:12:32 +0000 (19:12 +0000)] 
Block on frameout if the hardware has enough samples to complete a frame.

Fixes some problems with skipping audio in elaborate scenarios involving
multiple codecs by making codec_dahdi operate in a more synchronous
fashion similar to codec_g729. This change also fixes the use of file
conversion tools from Asterisk's CLI. This change may cause the thread
responsible for transcoding audio to block briefly (Shaun Ruffell describes
this as 'several milliseconds') while waiting for the hardware transcoder.

(closes issue ASTERISK-19643)
reported by: Shaun Ruffell
Patches:
0001-codec_dahdi-Block-on-frameout-the-hardware-has-enoug.patch
uploaded by Shaun Ruffell (license 5417)
........

Merged revisions 365989 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365990 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoPrevent sip_pvt refleak when an ast_channel outlasts its corresponding sip_pvt.
Mark Michelson [Wed, 9 May 2012 16:15:28 +0000 (16:15 +0000)] 
Prevent sip_pvt refleak when an ast_channel outlasts its corresponding sip_pvt.

chan_sip was coded under the assumption that a SIP dialog with an owner channel
will always be destroyed after the owner channel has been hung up.

However, there are situations where the SIP dialog can time out and auto destruct
before the corresponding channel has hung up. A typical example of this would be
if the 'h' extension in the dialplan takes a long time to complete. In such cases,
__sip_autodestruct() would complain about the dialog being auto destroyed with
an owner channel still in place. The problem is that even once the owner channel
was hung up, the sip_pvt would still be linked in its ao2_container because nothing
would ever unlink it.

The fix for this is that if __sip_autodestruct() is called for a sip_pvt that still
has an owner channel in place, the destruction is rescheduled for 10 seconds in the
future. This will continue until the owner channel is finally hung up.

(closes issue ASTERISK-19425)
reported by David Cunningham
Patches:
    ASTERISK-19425.patch uploaded by Mark Michelson (License #5049)

(closes issue ASTERISK-19455)
reported by Dean Vesvuio
Tested by Dean Vesvuio
........

Merged revisions 365896 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365898 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years ago* Fix FollowMe memory leak on error paths in app_exec().
Richard Mudgett [Tue, 8 May 2012 20:25:08 +0000 (20:25 +0000)] 
* Fix FollowMe memory leak on error paths in app_exec().

* Fix FollowMe leaving recorded caller name file on error paths in
app_exec().

* Use correct buffer dimension define in struct call_followme.moh[] and
struct fm_args.namerecloc[].  This fixes unexpected namerecloc filename
length restriction.
........

Merged revisions 365692 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365701 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years ago* Fix accept/decline DTMF buffer overwrite in FollowMe.
Richard Mudgett [Tue, 8 May 2012 18:08:01 +0000 (18:08 +0000)] 
* Fix accept/decline DTMF buffer overwrite in FollowMe.

* Made use MAX_YN_STRING define to make all accept/decline DTMF buffers
the same size.  Just using 20 isn't good enough when someone didn't get
the memo.

* Fix stupid use of a global variable in FollowMe.  (ynlongest)

* Fix bit field declarations in FollowMe.
........

Merged revisions 365631 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365632 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoSend more accurate identification information in dialog-info SIP NOTIFYs.
Mark Michelson [Tue, 8 May 2012 15:51:13 +0000 (15:51 +0000)] 
Send more accurate identification information in dialog-info SIP NOTIFYs.

This uses the calling channel's caller ID and connected line information
to populate the remote and local identities in the dialog-info NOTIFY when
an extension is ringing.

There is a bit of an oddity here, and that is that we seed the remote target
with the To header of the outbound call rather than the from header. This
is because it was reported that seeding with the from header caused hints
to be broken with certain SNOM devices. A comment has been added to the code
to explain this.

(closes issue ASTERISK-16735)
reported by Maciej Krajewski
patches:
    local_remote_hint2.diff uploaded by Mark Michelson (license #5049)
16735_tweak1.diff uploaded by Mark Michelson (license #5049)
Tested by Niccolo Belli
........

Merged revisions 365574 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365575 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix type punned compiler warning in test_config.c
Richard Mudgett [Mon, 7 May 2012 18:43:08 +0000 (18:43 +0000)] 
Fix type punned compiler warning in test_config.c
........

Merged revisions 365476 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365478 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoSupport VoiceMail d() option when extension does not exist in channel's context
Matthew Jordan [Mon, 7 May 2012 18:39:10 +0000 (18:39 +0000)] 
Support VoiceMail d() option when extension does not exist in channel's context

The VoiceMail d([c]) option is documented to accept digits for a new extension
in context <c>, if played during the greeting.  This option works fine if the
extension being redirected to has an extension with the same initial digit in
the channel's current context.  If that digit did not happen to exist in some
extension, a dialplan match would fail and the user would not be redirected.

This patch fixes it such that if the <c> option is used, the extensions are
matched in that context as opposed to the caller's original context.

(closes issue ASTERISK-18243)
Reported by: mjordan
Tested by: mjordan

Review: https://reviewboard.asterisk.org/r/1892
........

Merged revisions 365474 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365475 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix many issues from the NULL_RETURNS Coverity report
Kinsey Moore [Fri, 4 May 2012 22:15:05 +0000 (22:15 +0000)] 
Fix many issues from the NULL_RETURNS Coverity report

Most of the changes here are trivial NULL checks.  There are a couple
optimizations to remove the need to check for NULL and outboundproxy parsing
in chan_sip.c was rewritten to avoid use of strtok.  Additionally, a bug was
found and fixed with the parsing of outboundproxy when "outboundproxy=," was
set.

(Closes issue ASTERISK-19654)
........

Merged revisions 365398 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365399 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix local channel chains optimizing themselves out of a call.
Richard Mudgett [Fri, 4 May 2012 16:28:06 +0000 (16:28 +0000)] 
Fix local channel chains optimizing themselves out of a call.

* Made chan_local.c:check_bridge() check the return value of
ast_channel_masquerade().  In long chains of local channels, the
masquerade occasionally fails to get setup because there is another
masquerade already setup on an adjacent local channel in the chain.

* Made the outgoing local channel (the ;2 channel) flush one voice or
video frame per optimization attempt.

* Made sure that the outgoing local channel also does not have any frames
in its queue before the masquerade.

* Made do the masquerade immediately to minimize the chance that the
outgoing channel queue does not get any new frames added and thus
unconditionally flushed.

* Made block indication -1 (Stop tones) event when the local channel is
going to optimize itself out.  When the call is answered, a chain of local
channels pass down a -1 indication for each bridge.  This blizzard of -1
events really slows down the optimization process.

(closes issue ASTERISK-16711)
Reported by: Alec Davis
Tested by: rmudgett, Alec Davis
Review: https://reviewboard.asterisk.org/r/1894/
........

Merged revisions 365313 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365320 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix core FINDING 2, FINDING 3, and FINDING 4 from Coverity's CONSTANT_EXPRESSION_RESU...
Mark Michelson [Fri, 4 May 2012 15:51:04 +0000 (15:51 +0000)] 
Fix core FINDING 2, FINDING 3, and FINDING 4 from Coverity's CONSTANT_EXPRESSION_RESULT report.

These three all are in RTP code that attempts to print the number of sequence number cycles
in an RTCP RR report. The code was masking out the upper 16 bits and then shifting the number
right by 16 bits. This led to an all zero result in all cases. The fix is to do the shift without
the bit masking.

(issue ASTERISK-19649)
........

Merged revisions 365298 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365299 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix warning of Coverity Static analysis, change H225ProtocolIdentifier
Alexandr Anikin [Thu, 3 May 2012 15:01:14 +0000 (15:01 +0000)] 
Fix warning of Coverity Static analysis, change H225ProtocolIdentifier
from value to pointer per functions that use this.

(close issue ASTERISK-19670)
Reported by: Matt Jordan
Patches:
  ASTERISK-19670.patch (License #5415)
........

Merged revisions 365159 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365160 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix coverity static analysis warning, allocate full ie structure
Alexandr Anikin [Thu, 3 May 2012 14:27:00 +0000 (14:27 +0000)] 
Fix coverity static analysis warning, allocate full ie structure
instead of without data buffer

(close issue ASTERISK-19674)
Reported by: Matt Jordan
Patches:
  ASTERISK-19674.patch (License #5415)
........

Merged revisions 365143 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365155 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoMultiple revisions 365006,365068
Terry Wilson [Wed, 2 May 2012 17:29:54 +0000 (17:29 +0000)] 
Multiple revisions 365006,365068

........
  r365006 | twilson | 2012-05-02 10:49:03 -0500 (Wed, 02 May 2012) | 12 lines

  Fix a CEL LINKEDID_END race and local channel linkedids

  This patch has the ;2 channel inherit the linkedid of the ;1 channel and fixes
  the race condition by no longer scanning the channel list for "other" channels
  with the same linkedid. Instead, cel.c has an ao2 container of linkedid strings
  and uses the refcount of the string as a counter of how many channels with the
  linkedid exist. Not only does this eliminate the race condition, but it also
  allows us to look up the linkedid by the hashed key instead of traversing the
  entire channel list.

  Review: https://reviewboard.asterisk.org/r/1895/
........
  r365068 | twilson | 2012-05-02 12:02:39 -0500 (Wed, 02 May 2012) | 11 lines

  Don't leak a ref if out of memory and can't link the linkedid

  If the ao2_link fails, we are most likely out of memory and bad things
  are going to happen. Before those bad things happen, make sure to clean
  up the linkedid references.

  This patch also adds a comment explaining why linkedid can't be passed
  to both local channel allocations and combines two ao2_ref calls into 1.

  Review: https://reviewboard.asterisk.org/r/1895/
........

Merged revisions 365006,365068 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365083 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoUpdate security events unit tests
Michael L. Young [Wed, 2 May 2012 16:16:03 +0000 (16:16 +0000)] 
Update security events unit tests

The security events framework API was changed in Asterisk 10 but the unit tests
were not updated at the same time.

This patch does the following:
* Adds two more security events that were added to the API
* Add challenge, received_challenge and received_hash in the inval_password
  security event unit test

(issue ASTERISK-19760)
Reported by: Michael L. Young
Tested by: Michael L. Young
Patches:
issue-asterisk-19760-branch10.diff uploaded by Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/1877/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@365014 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoOnly log a failure to get read/write samples from factories if it didn't happen
Matthew Jordan [Wed, 2 May 2012 02:44:15 +0000 (02:44 +0000)] 
Only log a failure to get read/write samples from factories if it didn't happen

In audiohook_read_frame_both, anytime samples are obtained from the read/write
factories a debug statement is logged stating that samples were not obtained
from the factories.  This statement used to only occur if option_debug was
turned on and no samples were obtained; in some refactoring when the
option_debug statement was removed, the "else" clause was removed as well.

This patch makes it so that those debug log statements only occur if the
condition leading up to them actually happened.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364965 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFixed __ao2_ref() validating user_data twice.
Richard Mudgett [Tue, 1 May 2012 23:14:12 +0000 (23:14 +0000)] 
Fixed __ao2_ref() validating user_data twice.

(closes issue ASTERISK-19755)
Reported by: Gunther Kelleter
Patches:
      ao2_ref.patch (license #6372) patch uploaded by Gunther Kelleter
........

Merged revisions 364902 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364903 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix Coverity-reported ARRAY_VS_SINGLETON error.
Mark Michelson [Tue, 1 May 2012 23:10:16 +0000 (23:10 +0000)] 
Fix Coverity-reported ARRAY_VS_SINGLETON error.

As it turned out, this wasn't a huge deal. We were calling
ast_app_parse_options() for a set of options of which none
took arguments. The proper thing to do for this case is to
pass NULL for the "args" parameter here. We were instead passing
a seemingly-randomly chosen char * from the function. While this
would never get written to, you can rest assured things would
have gotten bad had new options (which took arguments) been added
to func_volume.

(closes issue ASTERISK-19656)
........

Merged revisions 364899 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364900 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years ago* Fix error path resouce leak in local_request().
Richard Mudgett [Tue, 1 May 2012 21:50:32 +0000 (21:50 +0000)] 
* Fix error path resouce leak in local_request().

* Restructure local_request() to reduce indentation.
........

Merged revisions 364840 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364845 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoPrevent a potential crash when using manager hooks.
Jason Parker [Tue, 1 May 2012 21:44:13 +0000 (21:44 +0000)] 
Prevent a potential crash when using manager hooks.

Found by me while poking at DPMA-127.
........

Merged revisions 364841 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364842 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoPlay conf-placeintoconf message to the correct channel
Kinsey Moore [Tue, 1 May 2012 19:07:09 +0000 (19:07 +0000)] 
Play conf-placeintoconf message to the correct channel

Correct the code in app_confbridge to play the conf-placeintoconf message to
the marked user entering the bridge instead of to the conference while the
marked user hears silence.

(closes issue ASTERISK-19641)
Reported-by: Mark A Walters
........

Merged revisions 364786 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364787 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix bad check in voicemail functions for ast_inboxcount2_func
Jonathan Rose [Tue, 1 May 2012 18:23:08 +0000 (18:23 +0000)] 
Fix bad check in voicemail functions for ast_inboxcount2_func

Check looks for ast_inboxcount_func instead of ast_inboxcount2_func on
ast_inboxcount2_func calls.

(closes issue ASTERISK-19718)
Reported by: Corey Farrell
Patches:
ast_app_inboxcount2-null-refcheck.patch uploaded by Corey Farrell (license 5909)
........

Merged revisions 364769 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364777 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoRevert improved identities sent in dialog-info NOTIFY requests in r360862
Mark Michelson [Mon, 30 Apr 2012 19:42:35 +0000 (19:42 +0000)] 
Revert improved identities sent in dialog-info NOTIFY requests in r360862

Revision 360862 was intended to improve identities sent in dialog-info
NOTIFY requests. Some users reported that hint became broken once this
was done. It's not clear exactly what part of the patch has caused this
regression, but broken hints are bad.

For now, this revision is being reverted so that the next releases of
Asterisk do not have bad behavior in them. The original reported issue
will have to be fixed differently in the next version of Asterisk.

(issue ASTERISK-16735)
........

Merged revisions 364706 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364707 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix use freed pointer in return value from call thread
Alexandr Anikin [Mon, 30 Apr 2012 16:48:57 +0000 (16:48 +0000)] 
Fix use freed pointer in return value from call thread

(issue ASTERISK-19663)
Reported by: Matt Jordan
Patches:
  ASTERISK-19663-ooh323.patch (License #5415)
........

Merged revisions 364649 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364651 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoMerged revisions 364635 via svnmerge from
Mark Murawki [Mon, 30 Apr 2012 16:43:11 +0000 (16:43 +0000)] 
Merged revisions 364635 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r364635 | markm | 2012-04-30 11:51:12 -0400 (Mon, 30 Apr 2012) | 10 lines

  Sanatize result from bfd_find_nearest_line (BETTER_BACKTRACES)

  bfd_find_nearest_line can possibly set file to null resulting in a crash when strrchr(file) runs

  (closes issue ASTERISK-19815)
  Reported by Mark Murawski
  Tested by Mark Murawski
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364650 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix error that caused truncate operations to fail
Matthew Jordan [Sun, 29 Apr 2012 19:43:53 +0000 (19:43 +0000)] 
Fix error that caused truncate operations to fail

Another very inappropriate placement of a ')' (again introduced in r362151)
caused the various truncate operations to attempt to truncate the sound file
at a position of '0'.

(issue ASTERISK-19655)
Reported by: Matt Jordan

(issue ASTERISK-19810)
Reported by: colbec
........

Merged revisions 364578 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364579 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix configuring custom sound_leader_has_left in confbridge.conf
Michael L. Young [Sun, 29 Apr 2012 02:21:10 +0000 (02:21 +0000)] 
Fix configuring custom sound_leader_has_left in confbridge.conf

The configuration option to specify a custom sound_leader_has_left file for a
conference bridge was not being parsed.  This patch fixes it so that a custom
sound file will now be used.

(closes issue ASTERISK-19771)
Reported by: Pawel Kuzak
Tested by: Pawel Kuzak, Michael L. Young
Patches: leaderhasleft_sound.dpatch uploaded by Pawel Kuzak (license 6380)

Review: https://reviewboard.asterisk.org/r/1884/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364536 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAdd missing test_config.c
Terry Wilson [Fri, 27 Apr 2012 22:33:10 +0000 (22:33 +0000)] 
Add missing test_config.c

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364369 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix ast_parse_arg numeric type range checking and add tests
Terry Wilson [Fri, 27 Apr 2012 22:31:01 +0000 (22:31 +0000)] 
Fix ast_parse_arg numeric type range checking and add tests

ast_parse_arg wasn't checking for strto* parse errors or limiting
the results by the actual range of the numeric types. This patch fixes
that and adds unit tests as well.

Review: https://reviewboard.asterisk.org/r/1879/
........

Merged revisions 364340 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364365 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoDon't attempt to make use of the dynamic_exclude_static ACL if DNS lookup fails.
Mark Michelson [Fri, 27 Apr 2012 21:58:06 +0000 (21:58 +0000)] 
Don't attempt to make use of the dynamic_exclude_static ACL if DNS lookup fails.

(closes issue ASTERISK-18321)
Reported by Dan Lukes
Patches:
ASTERISK-18321.patch by Mark Michelson (license #5049)
........

Merged revisions 364341 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364342 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoPrevent overflow in calculation in ast_tvdiff_ms on 32-bit machines
Matthew Jordan [Fri, 27 Apr 2012 19:30:19 +0000 (19:30 +0000)] 
Prevent overflow in calculation in ast_tvdiff_ms on 32-bit machines

The method ast_tvdiff_ms attempts to calculate the difference, in milliseconds,
between two timeval structs, and return the difference in a 64-bit integer.
Unfortunately, it assumes that the long tv_sec/tv_usec members in the timeval
struct are large enough to hold the calculated values before it returns.  On
64-bit machines, this might be the case, as a long may be 64-bits.  On 32-bit
machines, however, a long may be less (32-bits), in which case, the calculation
can overflow.

This overflow caused significant problems in MixMonitor, which uses the method
to determine if an audio factory, which has not presented audio to an audiohook,
is merely late in providing said audio or will never provide audio.  In an
overflow situation, the audiohook would incorrectly determine that an audio
factory that will never provide audio is merely late instead.  This led to
situations where a MixMonitor never recorded any audio.  Note that this happened
most frequently when that MixMonitor was started by the ConfBridge application
itself, or when the MixMonitor was attached to a Local channel.

(issue ASTERISK-19497)
Reported by: Ben Klang
Tested by: Ben Klang
Patches:
  32-bit-time-overflow-10-2012-04-26.diff (license #6283) by mjordan

(closes issue ASTERISK-19727)
Reported by: Mark Murawski
Tested by: Michael L. Young
Patches:
  32-bit-time-overflow-2012-04-27.diff (license #6283) by mjordan)

(closes issue ASTERISK-19471)
Reported by: feyfre
Tested by: feyfre

(issue ASTERISK-19426)
Reported by: Johan Wilfer

Review: https://reviewboard.asterisk.org/r/1889/
........

Merged revisions 364277 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364285 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAllow SIP pvts involved in Replaces transfers to fall out of reference sooner
Kinsey Moore [Fri, 27 Apr 2012 18:58:34 +0000 (18:58 +0000)] 
Allow SIP pvts involved in Replaces transfers to fall out of reference sooner

Unref the SIP pvt stored in the refer structure as soon as it is no longer
needed so that the pvt and associated file descriptors can be freed sooner.
This change makes a reference decrement unnecessary in code that handles SIP
BYE/Also transfers which should not touch the reference anyway.

(Closes issue ASTERISK-19579)
Reported by: Maciej Krajewski
Tested by: Maciej Krajewski
........

Merged revisions 364258 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364259 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAllow for reloading SRTP crypto keys within the same SIP dialog
Matthew Jordan [Fri, 27 Apr 2012 14:44:13 +0000 (14:44 +0000)] 
Allow for reloading SRTP crypto keys within the same SIP dialog

As a continuation of the patch in r356604, which allowed for the
reloading of SRTP keys in re-INVITE transfer scenarios, this patch
addresses the more common case where a new key is requested within
the context of a current SIP dialog.  This can occur, for example, when
certain phones request a SIP hold.

Previously, once a dialog was associated with an SRTP object, any
subsequent attempt to process crypto keys in any SDP offer - either
the current one or a new offer in a new SIP request - were ignored.  This
patch changes this behavior to only ignore subsequent crypto keys within
the current SDP offer, but allows future SDP offers to change the keys.

(issue ASTERISK-19253)
Reported by: Thomas Arimont
Tested by: Thomas Arimont

Review: https://reviewboard.asteriskorg/r/1885/
........

Merged revisions 364203 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364204 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agofix a wrong behavior of alarm timezones in caldav and icalendar when an alarm doesnt...
Stefan Schmidt [Fri, 27 Apr 2012 12:54:19 +0000 (12:54 +0000)] 
fix a wrong behavior of alarm timezones in caldav and icalendar when an alarm doesnt use utc. This change uses the same timezone from the start time.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364163 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoUpdate Pickup application documentation. (With feeling this time.)
Richard Mudgett [Thu, 26 Apr 2012 21:10:46 +0000 (21:10 +0000)] 
Update Pickup application documentation. (With feeling this time.)
........

Merged revisions 364108 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364109 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix DTMF atxfer running h exten after the wrong bridge ends.
Richard Mudgett [Thu, 26 Apr 2012 20:25:05 +0000 (20:25 +0000)] 
Fix DTMF atxfer running h exten after the wrong bridge ends.

When party B does an attended transfer of party A to party C, the
attending bridge between party B and C should not be running an h exten
when the bridge ends.  Running an h exten now sets a softhangup flag to
ensure that an AGI will run in dead AGI mode.

* Set the AST_FLAG_BRIDGE_HANGUP_DONT on the party B channel for the
attending bridge between party B and C.

(closes issue AST-870)

(closes issue ASTERISK-19717)
Reported by: Mario

(closes issue ASTERISK-19633)
Reported by: Andrey Solovyev
Patches:
      jira_asterisk_19633_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett, Andrey Solovyev, Mario
........

Merged revisions 364060 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364065 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAdd more constness to the end_buf pointer in the netconsole
Terry Wilson [Thu, 26 Apr 2012 19:30:55 +0000 (19:30 +0000)] 
Add more constness to the end_buf pointer in the netconsole

issue ASTERISK-18308
Review: https://reviewboard.asterisk.org/r/1876/
........

Merged revisions 364046 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@364047 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix reference leaks involving SIP Replaces transfers
Kinsey Moore [Thu, 26 Apr 2012 13:27:34 +0000 (13:27 +0000)] 
Fix reference leaks involving SIP Replaces transfers

The reference held for SIP blind transfers using the Replaces header in an
INVITE was never freed on success and also failed to be freed in some error
conditions.  This caused a file descriptor leak since the RTP structures in use
at the time of the transfer were never freed.  This reference leak and another
relating to subscriptions in the same code path have now been corrected.

(Closes issue ASTERISK-19579)
Reported by: Maciej Krajewski
Tested by: Maciej Karjewski
........

Merged revisions 363986 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363987 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agochan_sip: [general] maxforwards, not checked for a value greater than 255
Alec L Davis [Thu, 26 Apr 2012 09:46:38 +0000 (09:46 +0000)] 
chan_sip: [general] maxforwards, not checked for a value greater than 255

The peer maxforwards is checked for both '< 1' and '> 255',
but the default 'maxforwards' in the [general] section is only checked for '< 1'

alecdavis (license 585)
Reported by: alecdavis
Tested by: alecdavis

Review: https://reviewboard.asterisk.org/r/1888/
........

Merged revisions 363934 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363935 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoUpdate Pickup application documentation. (Even better)
Richard Mudgett [Thu, 26 Apr 2012 03:11:45 +0000 (03:11 +0000)] 
Update Pickup application documentation. (Even better)
........

Merged revisions 363875 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363876 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoUpdate Pickup application documentation.
Richard Mudgett [Wed, 25 Apr 2012 22:59:46 +0000 (22:59 +0000)] 
Update Pickup application documentation.
........

Merged revisions 363788 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363789 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoMake DAHDISendCallreroutingFacility wait 5 seconds for a reply before disconnecting...
Richard Mudgett [Wed, 25 Apr 2012 20:48:22 +0000 (20:48 +0000)] 
Make DAHDISendCallreroutingFacility wait 5 seconds for a reply before disconnecting the call.

Some switches may not handle the call-deflection/call-rerouting message if
the call is disconnected too soon after being sent.  Asteisk was not
waiting for any reply before disconnecting the call.

* Added a 5 second delay before disconnecting the call to wait for a
potential response if the peer does not disconnect first.

(closes issue ASTERISK-19708)
Reported by: mehdi Shirazi
Patches:
      jira_asterisk_19708_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett
........

Merged revisions 363730 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363734 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoClear ISDN channel resetting state if the peer continues to use it.
Richard Mudgett [Wed, 25 Apr 2012 19:47:44 +0000 (19:47 +0000)] 
Clear ISDN channel resetting state if the peer continues to use it.

Some ISDN switches occasionally fail to send a RESTART ACKNOWLEDGE in
response to a RESTART request.

* Made the second SETUP received after sending a RESTART request clear the
channel resetting state as if the peer had sent the expected RESTART
ACKNOWLEDGE before continuing to process the SETUP.  The peer may not be
sending the expected RESTART ACKNOWLEDGE.

(issue ASTERISK-19608)
(issue AST-844)
(issue AST-815)
Patches:
      jira_ast_815_v1.8.patch (license #5621) patch uploaded by rmudgett (modified)
........

Merged revisions 363687 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363688 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix recalled party B feature flags for a failed DTMF atxfer.
Richard Mudgett [Wed, 25 Apr 2012 01:23:08 +0000 (01:23 +0000)] 
Fix recalled party B feature flags for a failed DTMF atxfer.

1) B calls A with Dial option T
2) B DTMF atxfer to C
3) B hangs up
4) C does not answer
5) B is called back
6) B answers
7) B cannot initiate transfers anymore

* Add dial features datastore to recalled party B channel that is a copy
of the original party B channel's dial features datastore.

* Extracted add_features_datastore() from add_features_datastores().

* Renamed struct ast_dial_features features_caller and features_callee
members to my_features and peer_features respectively.  These better names
eliminate the need for some explanatory comments.

* Simplified code accessing the struct ast_dial_features datastore.

(closes issue ASTERISK-19383)
Reported by: lgfsantos
........

Merged revisions 363428 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363429 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoHangup affected channel in error paths of bridge_call_thread().
Richard Mudgett [Wed, 25 Apr 2012 00:01:21 +0000 (00:01 +0000)] 
Hangup affected channel in error paths of bridge_call_thread().
........

Merged revisions 363375 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363376 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoOn some platforms, O_RDONLY is not a flag to be checked, but merely the absence of...
Tilghman Lesher [Mon, 23 Apr 2012 16:06:53 +0000 (16:06 +0000)] 
On some platforms, O_RDONLY is not a flag to be checked, but merely the absence of O_RDWR and O_WRONLY.

The POSIX specification does not mandate how these 3 flags must be specified,
only that one of the three must be specified in every call.
........

Merged revisions 363209 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363212 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAST-2012-004: Fix an error that allows AMI users to run shell commands sans authoriza...
Jonathan Rose [Mon, 23 Apr 2012 14:39:48 +0000 (14:39 +0000)] 
AST-2012-004: Fix an error that allows AMI users to run shell commands sans authorization.

As detailed in the advisory, AMI users without write authorization for SYSTEM class AMI
actions were able to run system commands by going through other AMI commands which did
not require that authorization. Specifically, GetVar and Status allowed users to do this
by setting their variable/s options to the SHELL or EVAL functions.
Also, within 1.8, 10, and trunk there was a similar flaw with the Originate action that
allowed users with originate permission to run MixMonitor and supply a shell command
in the Data argument. That flaw is fixed in those versions of this patch.

(closes issue ASTERISK-17465)
Reported By: David Woolley
Patches:
162_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)
18_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)
10_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)
........

Merged revisions 363117 from http://svn.asterisk.org/svn/asterisk/branches/1.6.2
........

Merged revisions 363141 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363156 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAST-2012-006: Fix crash in UPDATE handling when no channel owner exists
Matthew Jordan [Mon, 23 Apr 2012 14:07:29 +0000 (14:07 +0000)] 
AST-2012-006: Fix crash in UPDATE handling when no channel owner exists

If Asterisk receives a SIP UPDATE request after a call has been terminated and
the channel has been destroyed but before the SIP dialog has been destroyed, a
condition exists where a connected line update would be attempted on a
non-existing channel.  This would cause Asterisk to crash.  The patch resolves
this by first ensuring that the SIP dialog has an owning channel before
attempting a connected line update.  If an UPDATE request is received and no
channel is associated with the dialog, a 481 response is sent.

(closes issue ASTERISK-19770)
Reported by: Thomas Arimont
Tested by: Matt Jordan
Patches:
  ASTERISK-19278-2012-04-16.diff uploaded by Matt Jordan (license 6283)
........

Merged revisions 363106 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363107 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoReference skinny_subchannel object instead of skinny_device for r363103
Matthew Jordan [Mon, 23 Apr 2012 13:48:48 +0000 (13:48 +0000)] 
Reference skinny_subchannel object instead of skinny_device for r363103

The check-in to resolve ASTERISK-19592 (r363103) failed to switch to the
skinny_subchannel object instead of the skinny_device when attempting to
reference the buffer for the keypad digits.  This patch fixes that.

(issue ASTERISK-19592)
Reported by: Russell Bryant

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363104 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAST-2012-005: Fix remotely exploitable heap overflow in keypad button handling
Matthew Jordan [Mon, 23 Apr 2012 13:40:23 +0000 (13:40 +0000)] 
AST-2012-005: Fix remotely exploitable heap overflow in keypad button handling

When handling a keypad button message event, the received digit is placed into
a fixed length buffer that acts as a queue.  When a new message event is
received, the length of that buffer is not checked before placing the new digit
on the end of the queue.  The situation exists where sufficient keypad button
message events would occur that would cause the buffer to be overrun.  This
patch explicitly checks that there is sufficient room in the buffer before
appending a new digit.

(closes issue ASTERISK-19592)
Reported by: Russell Bryant
........

Merged revisions 363100 from http://svn.asterisk.org/svn/asterisk/branches/1.6.2
........

Merged revisions 363102 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@363103 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoUpdate app_dial M and U option GOTO return value documentation.
Richard Mudgett [Sat, 21 Apr 2012 01:45:13 +0000 (01:45 +0000)] 
Update app_dial M and U option GOTO return value documentation.
........

Merged revisions 362997 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362998 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAdd missing payload type to events API
Michael L. Young [Fri, 20 Apr 2012 16:47:51 +0000 (16:47 +0000)] 
Add missing payload type to events API

The Security Events Framework API was changed while adding the generation of
security events in chan_sip.  A payload type and name was missed from being
added to struct ie_maps.

(closes issue ASTERISK-19759)
Reported by: Michael L. Young
Patches:
    issue-asterisk-19759.diff uploaded by Michael L. Young (license 5026)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362918 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoOpenBSD doesn't have rawmemchr, use strchr
Terry Wilson [Fri, 20 Apr 2012 16:12:34 +0000 (16:12 +0000)] 
OpenBSD doesn't have rawmemchr, use strchr

(closes issue ASTERISK-19758)
Reported by: Barry Miller
Tested by: Terry Wilson
Patches:
  362758-diff uploaded by Barry Miller (license 5434)
........

Merged revisions 362868 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362869 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoDocument Speech* apps hangup on failure and suggest TryExec
Terry Wilson [Fri, 20 Apr 2012 14:49:42 +0000 (14:49 +0000)] 
Document Speech* apps hangup on failure and suggest TryExec

The Speech API apps return -1 on failure, which will hang up the channel. This
may not be desirable behavior for some, but it isn't something that can be
changed without breaking people's dialplans or writing an option to all of the
Speech apps that does what TryExec already does. This patch documents the
hangup behavior of the apps, and suggests TryExec as the solution.

(closes issue AST-813)
........

Merged revisions 362815 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362816 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix documentation for ${VERSION(ASTERISK_VERSION_NUM)}.
Walter Doekes [Thu, 19 Apr 2012 21:59:43 +0000 (21:59 +0000)] 
Fix documentation for ${VERSION(ASTERISK_VERSION_NUM)}.
........

Merged revisions 362729 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362730 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoAdd leading and trailing backslashes
Michael L. Young [Thu, 19 Apr 2012 21:11:35 +0000 (21:11 +0000)] 
Add leading and trailing backslashes

A couple of unit tests did not have have leading or trailing backslashes when
setting their test category resulting in a warning message being displayed.
Added the backslash where needed.
........

Merged revisions 362680 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362681 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoUpdate membermacro and membergosub documentation in queues.conf.sample.
Richard Mudgett [Thu, 19 Apr 2012 21:00:21 +0000 (21:00 +0000)] 
Update membermacro and membergosub documentation in queues.conf.sample.
........

Merged revisions 362677 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362678 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoPrevent a crash in ExternalIVR when the 'S' command is sent first.
Sean Bright [Thu, 19 Apr 2012 16:04:21 +0000 (16:04 +0000)] 
Prevent a crash in ExternalIVR when the 'S' command is sent first.

If the first command sent from an ExternalIVR client is an 'S' command, we were
blindly removing the first element from the play list and deferencing it, even
if it was NULL.  This corrects that and also locks appropriately in one place.

(issue ASTERISK-17889)
Reported by: Chris Maciejewski
........

Merged revisions 362586 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362587 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoHandle multiple commands per connection via netconsole
Terry Wilson [Thu, 19 Apr 2012 14:31:59 +0000 (14:31 +0000)] 
Handle multiple commands per connection via netconsole

Asterisk would accept multiple NULL-delimited CLI commands via the
netconsole socket, but would occasionally miss a command due to the
command not being completely read into the buffer. This patch ensures
that any partial commands get moved to the front of the read buffer,
appended to, and properly sent.

(closes issue ASTERISK-18308)
Review: https://reviewboard.asterisk.org/r/1876/
........

Merged revisions 362536 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362537 65c4cc65-6c06-0410-ace0-fbb531ad65f3

13 years agoFix a variety of potential buffer overflows
Matthew Jordan [Thu, 19 Apr 2012 02:27:08 +0000 (02:27 +0000)] 
Fix a variety of potential buffer overflows

* chan_mobile: Fixed an overrun where the cind_state buffer (an integer array
  of size 16) would be overrun due to improper bounds checking. At worst, the
  buffer can be overrun by a total of 48 bytes (assuming 4-byte integers),
  which would still leave it within the allocated memory of struct hfp.  This
  would corrupt other elements in that struct but not necessarily cause any
  further issues.

* app_sms: The array imsg is of size 250, while the array (ud) that the data
  is copied into is of size 160.  If the size of the inbound message is
  greater then 160, up to 90 bytes could be overrun in ud.  This would corrupt
  the user data header (array udh) adjacent to ud.

* chan_unistim: A number of invalid memmoves are corrected.  These would move
  data (which may or may not be valid) into the ends of these buffers.

* asterisk: ast_console_toggle_loglevel does not check that the console log
  level being set is less then or equal to the allowed log levels of 32.

* format_pref: In ast_codec_pref_prepend, if any occurrence of the specified
  codec is not found, the value used to index into the array pref->order
  would be one greater then the maximum size of the array.

* jitterbuf: If the element being placed into the jitter buffer lands in the
  last available slot in the jitter history buffer, the insertion sort attempts
  to move the last entry in the buffer into one slot past the maximum length
  of the buffer.  Note that this occurred for both the min and max jitter
  history buffers.

* tdd: If a read from fsk_serial returns a character that is greater then 32,
  an attempt to read past one of the statically defined arrays containing the
  values that character maps to would occur.

* localtime: struct ast_time and tm are not the same size - ast_time is larger,
  although it contains the elements of tm within it in the same layout.  Hence,
  when using memcpy to copy the contents of tm into ast_time, the size of tm
  should be used, as opposed to the size of ast_time.

* extconf: this treats ast_timing's minmask array as if it had a length of 48,
  when it has defined the size of the array as 24.  pbx.h defines minmask as
  having a size of 48.

(issue ASTERISK-19668)
Reported by: Matt Jordan
........

Merged revisions 362485 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@362496 65c4cc65-6c06-0410-ace0-fbb531ad65f3