]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
7 years agoCLI: Create ast_cli_completion_vector.
Corey Farrell [Tue, 7 Nov 2017 23:07:35 +0000 (18:07 -0500)] 
CLI: Create ast_cli_completion_vector.

This is a rewrite of ast_cli_completion_matches using a vector to build
the list.  The original function calls the vector version, NULL
terminates the vector and extracts the elements array.

One change in behavior the results are now sorted and deduplicated. This
will solve bugs where some duplicate checking was done before the list
was sorted.

Change-Id: Iede20c5b4d965fa5ec71fda136ce9425eeb69519

7 years agoMerge "aoc: Fix memory management issues." into 13
Jenkins2 [Fri, 17 Nov 2017 12:50:57 +0000 (06:50 -0600)] 
Merge "aoc: Fix memory management issues." into 13

7 years agoaoc: Fix memory management issues.
Corey Farrell [Fri, 17 Nov 2017 01:39:20 +0000 (20:39 -0500)] 
aoc: Fix memory management issues.

aoc_publish_blob failed to check for msg allocation error and never
released msg.

Change-Id: Ib31a9ffb81056a0d496a49d7eec795005a44bcd5

7 years agores_pjsip_transport_websocket: Give transport a meaningful description
Sean Bright [Thu, 16 Nov 2017 22:18:16 +0000 (17:18 -0500)] 
res_pjsip_transport_websocket: Give transport a meaningful description

We were not \0 terminating this string, so any attempt to print it would
in the best case show an empty string and in the worst case potentially
crash.

Change-Id: I63d96ef8f7516ac02a0f91e22dfa8acdc615042c

7 years agoMerge "ast_coredumper: Add ability to use directory other than /tmp" into 13
Joshua Colp [Thu, 16 Nov 2017 21:44:27 +0000 (15:44 -0600)] 
Merge "ast_coredumper:  Add ability to use directory other than /tmp" into 13

7 years agoMerge "sorcery: Add ast_sorcery_retrieve_by_prefix()" into 13
Joshua Colp [Thu, 16 Nov 2017 16:59:23 +0000 (10:59 -0600)] 
Merge "sorcery: Add ast_sorcery_retrieve_by_prefix()" into 13

7 years agoMerge "pjsip / hep: Provide correct local address for Websockets." into 13
Jenkins2 [Thu, 16 Nov 2017 16:57:28 +0000 (10:57 -0600)] 
Merge "pjsip / hep: Provide correct local address for Websockets." into 13

7 years agoMerge "chan_pjsip.c: Improve answer failure log messages." into 13
Jenkins2 [Thu, 16 Nov 2017 15:29:16 +0000 (09:29 -0600)] 
Merge "chan_pjsip.c: Improve answer failure log messages." into 13

7 years agoMerge "audiohook.c: Fix freeing a frame and still using it." into 13
Joshua Colp [Thu, 16 Nov 2017 13:58:57 +0000 (07:58 -0600)] 
Merge "audiohook.c: Fix freeing a frame and still using it." into 13

7 years agochan_pjsip.c: Improve answer failure log messages.
Richard Mudgett [Fri, 10 Nov 2017 01:58:12 +0000 (19:58 -0600)] 
chan_pjsip.c: Improve answer failure log messages.

* Balanced the session->inv_session refs on answer failure.

Change-Id: I33542d639d37e692cb46550b972a5fcfc3b804b8

7 years agoaudiohook.c: Fix freeing a frame and still using it.
Richard Mudgett [Wed, 15 Nov 2017 00:00:55 +0000 (18:00 -0600)] 
audiohook.c: Fix freeing a frame and still using it.

Memory corruption happened to the media frame caches when an audio hook
freed a frame when it shouldn't.  I think the freed frame was because a
jitter buffer interpolated a missing frame and the audio hook
unconditionally freed it.

* Made audiohook.c:audio_audiohook_write_list() not free an interpolated
frame if it is the same frame as what was passed into the routine.

* Made plc.c:normalise_history() use memmove() instead of memcpy() on a
memory block that could overlap.  Found by valgrind investigating this
issue.

ASTERISK-27238
ASTERISK-27412

Change-Id: I548d86894281fc4529aefeb9f161f2131ecc6fde

7 years agoapp_record: Don't set RECORD_STATUS chan var until file is closed
George Joseph [Wed, 15 Nov 2017 18:10:16 +0000 (11:10 -0700)] 
app_record:  Don't set RECORD_STATUS chan var until file is closed

We've been calling pbx_builtin_setvar_helper to set the
RECORD_STATUS variable before actually closing the recorded file.
If a client is watching VarSet events and tries to do something with
the file when a RECORD_STATUS event is seen, they might attempt to
do so while the file it's still open.

We now delay calling pbx_builtin_setvar_helper until after we close
the file.

ASTERISK-27423

Change-Id: I7fe9de99953e46b4bafa2b38cf151fe8f6488254

7 years agoast_coredumper: Add ability to use directory other than /tmp
George Joseph [Tue, 7 Nov 2017 14:25:59 +0000 (07:25 -0700)] 
ast_coredumper:  Add ability to use directory other than /tmp

The OUTPUTDIR environment variable can now be set either in the
environment itself or in ast_debug_tools.conf.  If set, it's used
for all work products instead of /tmp.

Also added the --tarball-config option that includes the contents
of /etc/asterisk when either --tarball-coredumps or --tarball-results
are used.

Change-Id: I66b2553319df61caea5b313d084f51978f730b4c

7 years agoMerge "bundled_pjproject: Update to 2.7.1" into 13
Joshua Colp [Tue, 14 Nov 2017 23:13:49 +0000 (17:13 -0600)] 
Merge "bundled_pjproject: Update to 2.7.1" into 13

7 years agoMerge "bundled_pjproject: sip_parser: Fix return code in pjsip_find_msg" into 13
Jenkins2 [Tue, 14 Nov 2017 19:54:24 +0000 (13:54 -0600)] 
Merge "bundled_pjproject: sip_parser:  Fix return code in pjsip_find_msg" into 13

7 years agoMerge "core: Fix configuration of remote console socket path." into 13
Jenkins2 [Tue, 14 Nov 2017 16:19:21 +0000 (10:19 -0600)] 
Merge "core: Fix configuration of remote console socket path." into 13

7 years agoMerge "pjsip: Add patch to allow all transports to be destroyed." into 13
Jenkins2 [Tue, 14 Nov 2017 14:52:30 +0000 (08:52 -0600)] 
Merge "pjsip: Add patch to allow all transports to be destroyed." into 13

7 years agoMerge "core: Add cache_media_frames debugging option." into 13
Joshua Colp [Tue, 14 Nov 2017 13:15:40 +0000 (07:15 -0600)] 
Merge "core: Add cache_media_frames debugging option." into 13

7 years agopjsip / hep: Provide correct local address for Websockets.
Joshua Colp [Mon, 13 Nov 2017 13:14:23 +0000 (13:14 +0000)] 
pjsip / hep: Provide correct local address for Websockets.

Previously for PJSIP the local address of WebSocket connections
was set to the remote address. For logging purposes this is
not particularly useful.

The WebSocket API has been extended to allow the local
address to be queried and this is used in PJSIP to set the
local address to the correct value.

The PJSIP HEP support has also been tweaked so that reliable
transports always use the local address on the transport
and do not try to (wrongly) guess. As they are connection
based it is impossible for the source to be anything else.

ASTERISK-26758
ASTERISK-27363

Change-Id: Icd305fd038ad755e2682ab2786e381f6bf29e8ca

7 years agoalertpipe: Correct documented return of ast_alertpipe_write.
Corey Farrell [Mon, 13 Nov 2017 23:47:46 +0000 (18:47 -0500)] 
alertpipe: Correct documented return of ast_alertpipe_write.

Change-Id: I4ea49c441890a81384144479dc93ab5a3989486d

7 years agoMerge "vectors: Add new macro and a string vector definition." into 13
Jenkins2 [Mon, 13 Nov 2017 22:58:36 +0000 (16:58 -0600)] 
Merge "vectors: Add new macro and a string vector definition." into 13

7 years agocore: Fix configuration of remote console socket path.
Corey Farrell [Mon, 13 Nov 2017 22:20:27 +0000 (17:20 -0500)] 
core: Fix configuration of remote console socket path.

The remote console socket path is the combination of asterisk.conf
settings astrundir from [directories] and astctl from [files].
Unconditionally combine the two strings after processing all values
to ensure we end up with the correct socket path.

ASTERISK-27415

Change-Id: Ib1e2805d55d6b0955c6430a1a2a93acbf9b091e8

7 years agoMerge "menuselect: Delete and ignore aclocal.m4." into 13
Jenkins2 [Mon, 13 Nov 2017 22:01:51 +0000 (16:01 -0600)] 
Merge "menuselect: Delete and ignore aclocal.m4." into 13

7 years agobundled_pjproject: sip_parser: Fix return code in pjsip_find_msg
George Joseph [Fri, 10 Nov 2017 16:37:16 +0000 (09:37 -0700)] 
bundled_pjproject: sip_parser:  Fix return code in pjsip_find_msg

The default return code for pjsip_find_msg was PJ_SUCCESS so if
a Content-Length header wasn't found at all, pjsip_find_msg was
returning PJ_SUCCESS instead of PJSIP_EMISSINGHDR.

Also added the volatile keyword to a few variables that are used
both inside and outside the PJ_TRY/PJ_CATCH block.

Partial fix for ASTERISK_27408

Change-Id: If82ba9de921e3d57df9c68cf96ee45ccc1491f7a

7 years agobundled_pjproject: Update to 2.7.1
Ben Ford [Mon, 13 Nov 2017 20:35:14 +0000 (14:35 -0600)] 
bundled_pjproject: Update to 2.7.1

Update from 2.7 to 2.7.1 for bundled pjproject. Changed version
and removed patch files included in the update.

Change-Id: I55cea8e734b318c2df9daf86aa0802c559ec8357

7 years agosorcery: Add ast_sorcery_retrieve_by_prefix()
Sean Bright [Thu, 9 Nov 2017 14:21:38 +0000 (09:21 -0500)] 
sorcery: Add ast_sorcery_retrieve_by_prefix()

Some consumers of the sorcery API use ast_sorcery_retrieve_by_regex
only so that they can anchor the potential match as a prefix and not
because they truly need regular expressions.

Rather than using regular expressions for simple prefix lookups, add
a new operation - ast_sorcery_retrieve_by_prefix - that does them.

Patches against 13 and 15 have a compatibility layer needed to
maintain ABI that is not needed in master.

Change-Id: I56f4e20ba1154bd52281f995c27a429a854f6a79

7 years agovectors: Add new macro and a string vector definition.
Corey Farrell [Tue, 7 Nov 2017 20:00:33 +0000 (15:00 -0500)] 
vectors: Add new macro and a string vector definition.

* AST_VECTOR_STEAL_ELEMENTS - steal the array of elements for use
  with non-vector code.
* struct ast_vector_string - a vector of 'char *'.

Change-Id: I104d1b204be03fccf67e02a195596adcb5ab1e42

7 years agoMerge "Build System: Disable parallel make in the root Makefile." into 13
Joshua Colp [Mon, 13 Nov 2017 13:20:47 +0000 (07:20 -0600)] 
Merge "Build System: Disable parallel make in the root Makefile." into 13

7 years agoMerge "res_pjsip_pubsub: Ensure remote URI contains URI only." into 13
Jenkins2 [Mon, 13 Nov 2017 12:32:28 +0000 (06:32 -0600)] 
Merge "res_pjsip_pubsub: Ensure remote URI contains URI only." into 13

7 years agomenuselect: Delete and ignore aclocal.m4.
Corey Farrell [Sat, 11 Nov 2017 04:04:53 +0000 (23:04 -0500)] 
menuselect: Delete and ignore aclocal.m4.

This file is temporary output from the bootstrap.sh command, it does not
need to be committed.

Change-Id: Ie0fd113aff6eac44924c0bd0c900833c6c86a6d9

7 years agocore: Add cache_media_frames debugging option.
Richard Mudgett [Sat, 11 Nov 2017 19:01:47 +0000 (13:01 -0600)] 
core: Add cache_media_frames debugging option.

The media frame cache gets in the way of finding use after free errors of
media frames.  Tools like valgrind and MALLOC_DEBUG don't know when a
frame is released because it gets put into the cache instead of being
freed.

* Added the "cache_media_frames" option to asterisk.conf.  Disabling the
option helps track down media frame mismanagement when using valgrind or
MALLOC_DEBUG.  The cache gets in the way of determining if the frame is
used after free and who freed it.  NOTE: This option has no effect when
Asterisk is compiled with the LOW_MEMORY compile time option enabled
because the cache code does not exist.

To disable the media frame cache simply disable the cache_media_frames
option in asterisk.conf and restart Asterisk.

Sample asterisk.conf setting:
[options]
cache_media_frames=no

ASTERISK-27413

Change-Id: I0ab2ce0f4547cccf2eb214901835c2d951b78c00

7 years agoframe.c: Make ast_frame_free()/ast_frfree() NULL tolerant
Richard Mudgett [Sat, 11 Nov 2017 15:42:01 +0000 (09:42 -0600)] 
frame.c: Make ast_frame_free()/ast_frfree() NULL tolerant

Change-Id: Ic49d821ef88ada38a31bdd835b9531443c55d793

7 years agoMerge "chan_pjsip.c: Fix uninitialized cause value on failure." into 13
Jenkins2 [Fri, 10 Nov 2017 14:18:04 +0000 (08:18 -0600)] 
Merge "chan_pjsip.c: Fix uninitialized cause value on failure." into 13

7 years agopjsip: Add patch to allow all transports to be destroyed.
Joshua Colp [Fri, 10 Nov 2017 13:06:38 +0000 (13:06 +0000)] 
pjsip: Add patch to allow all transports to be destroyed.

If a transport is created with the same transport type, source
IP address, and source port as one that already exists the old
transport is moved into a linked list called "tp_list".

If this old transport is later shutdown it will not be destroyed
as the process checks whether the transport is valid or not. This
check does not look at the "tp_list" when making the determination
causing the transport to not be destroyed.

This change updates the logic to query not just the main storage
method for transports but also the "tp_list".

Upstream issue https://trac.pjsip.org/repos/ticket/2061

ASTERISK-27411

Change-Id: Ic5c2bb60226df0ef1c8851359ed8d4cd64469429

7 years agocore: Remove disabled code.
Corey Farrell [Fri, 10 Nov 2017 02:34:32 +0000 (21:34 -0500)] 
core: Remove disabled code.

handle_quit has been disabled since 2003, remove it.

Change-Id: Idc3aaa6c81676160547078f9b71e8aa43de2db18

7 years agoMerge "stasis_bridges.c: Fix off-nominal json memory leaks." into 13
Jenkins2 [Thu, 9 Nov 2017 23:44:16 +0000 (17:44 -0600)] 
Merge "stasis_bridges.c: Fix off-nominal json memory leaks." into 13

7 years agoBuild System: Disable parallel make in the root Makefile.
Corey Farrell [Thu, 9 Nov 2017 19:24:46 +0000 (14:24 -0500)] 
Build System: Disable parallel make in the root Makefile.

This ensures that the root Makefile runs only a single target at a time.
SUBMAKE will still honor requested parallelism, so 'make -j8' will build
one directory at a time but allow 8 jobs at once when building a sub
directory.

This will fix some display glitches related to rebuild of XML
documentation.  It will also prevent some edge case errors where
bundled pjproject needs to be rebuild before other parts of Asterisk.

Change-Id: I4f2ec6fbbec1ada0ccb1109a28ea303524239b1e

7 years agoMerge "res_pjsip_registrar.c: Fix named AOR and pjproject group deadlock." into 13
Kevin Harwell [Thu, 9 Nov 2017 17:48:49 +0000 (11:48 -0600)] 
Merge "res_pjsip_registrar.c: Fix named AOR and pjproject group deadlock." into 13

7 years agochan_pjsip.c: Fix uninitialized cause value on failure.
Richard Mudgett [Thu, 30 Mar 2017 01:46:56 +0000 (20:46 -0500)] 
chan_pjsip.c: Fix uninitialized cause value on failure.

Change-Id: I3f9dd3c31bd582e54a30381500077de2319d8cc3

7 years agoMerge "res_pjsip_history: Fix multiple leaks on vector append failure." into 13
Joshua Colp [Thu, 9 Nov 2017 09:44:21 +0000 (03:44 -0600)] 
Merge "res_pjsip_history: Fix multiple leaks on vector append failure." into 13

7 years agoMerge "res_pjsip_pubsub: Fix multiple leaks on failure to append vectors." into 13
Jenkins2 [Thu, 9 Nov 2017 02:56:26 +0000 (20:56 -0600)] 
Merge "res_pjsip_pubsub: Fix multiple leaks on failure to append vectors." into 13

7 years agoMerge "AST-2017-009: pjproject: Add validation of numeric header values" into 13
George Joseph [Wed, 8 Nov 2017 15:52:22 +0000 (09:52 -0600)] 
Merge "AST-2017-009: pjproject: Add validation of numeric header values" into 13

7 years agoMerge "AST-2017-011 - res_pjsip_session: session leak when a call is rejected" into 13
George Joseph [Wed, 8 Nov 2017 15:44:40 +0000 (09:44 -0600)] 
Merge "AST-2017-011 - res_pjsip_session: session leak when a call is rejected" into 13

7 years agoMerge "AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun" into 13
George Joseph [Wed, 8 Nov 2017 14:26:10 +0000 (08:26 -0600)] 
Merge "AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun" into 13

7 years agoMerge "res_pjproject.c: Fix ast_strdup() alloc failure." into 13
Jenkins2 [Wed, 8 Nov 2017 13:06:15 +0000 (07:06 -0600)] 
Merge "res_pjproject.c: Fix ast_strdup() alloc failure." into 13

7 years agoMerge "res_pjsip_outbound_registration: Fix leak on vector add failure." into 13
Jenkins2 [Wed, 8 Nov 2017 13:03:37 +0000 (07:03 -0600)] 
Merge "res_pjsip_outbound_registration: Fix leak on vector add failure." into 13

7 years agoAST-2017-011 - res_pjsip_session: session leak when a call is rejected
Kevin Harwell [Thu, 19 Oct 2017 18:35:16 +0000 (13:35 -0500)] 
AST-2017-011 - res_pjsip_session: session leak when a call is rejected

A previous commit made it so when an invite session transitioned into a
disconnected state destruction of the Asterisk pjsip session object was
postponed until either a transport error occurred or the event timer
expired. However, if a call was rejected (for instance a 488) before the
session was fully established the event timer may not have been initiated,
or it was canceled without triggering either of the session finalizing states
mentioned above.

Really the only time destruction of the session should be delayed is when a
BYE is being transacted. This is because it's possible in some cases for the
session to be disconnected, but the BYE is still transacting.

This patch makes it so the session object always gets released (no more
memory leak) when the pjsip session is in a disconnected state. Except when
the method is a BYE. Then it waits until a transport error occurs or an event
timeout.

ASTERISK-27345 #close

Reported by: Corey Farrell

Change-Id: I1e724737b758c20ac76d19d3611e3d2876ae10ed

7 years agoAST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun
Richard Mudgett [Tue, 3 Oct 2017 21:19:52 +0000 (16:19 -0500)] 
AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun

cdr_object_update_party_b_userfield_cb() could overrun the fixed buffer if
the supplied string is too long.  The long string could be supplied by
external means using the CDR(userfield) function.

This may seem reminiscent to AST-2017-001 (ASTERISK_26897) and it is.  The
earlier patch fixed the buffer overrun for Party A's userfield while this
patch fixes the same thing for Party B's userfield.

ASTERISK-27337

Change-Id: I0fa767f65ecec7e676ca465306ff9e0edbf3b652

7 years agoAST-2017-009: pjproject: Add validation of numeric header values
George Joseph [Thu, 19 Oct 2017 18:53:32 +0000 (12:53 -0600)] 
AST-2017-009: pjproject: Add validation of numeric header values

Parsing the numeric header fields like cseq, ttl, port, etc. all
had the potential to overflow, either causing unintended values to
be captured or, if the values were subsequently converted back to
strings, a buffer overrun.  To address this, new "strto" functions
have been created that do range checking and those functions are
used wherever possible in the parser.

 * Created pjlib/include/limits.h and pjlib/include/compat/limits.h
   to either include the system limits.h or define common numeric
   limits if there is no system limits.h.

 * Created strto*_validate functions in sip_parser that take bounds
   and on failure call the on_str_parse_error function which prints
   an error message and calls PJ_THROW.

 * Updated sip_parser to validate the numeric fields.

 * Fixed an issue in sip_transport that prevented error messages
   from being properly displayed.

 * Added "volatile" to some variables referenced in PJ_CATCH blocks
   as the optimizer was sometimes optimizing them away.

 * Fixed length calculation in sip_transaction/create_tsx_key_2543
   to account for signed ints being 11 characters, not 9.

ASTERISK-27319
Reported by: Youngsung Kim at LINE Corporation

Change-Id: I48de2e4ccf196990906304e8d7061f4ffdd772ff

7 years agoMerge "res_stasis: Fix multiple leaks." into 13
Joshua Colp [Wed, 8 Nov 2017 10:59:15 +0000 (04:59 -0600)] 
Merge "res_stasis: Fix multiple leaks." into 13

7 years agoMerge "res_pjsip_config_wizard: Fix leaks and add check for malloc failure." into 13
Jenkins2 [Wed, 8 Nov 2017 04:48:08 +0000 (22:48 -0600)] 
Merge "res_pjsip_config_wizard: Fix leaks and add check for malloc failure." into 13

7 years agores_pjsip_pubsub: Fix multiple leaks on failure to append vectors.
Corey Farrell [Mon, 6 Nov 2017 23:58:40 +0000 (18:58 -0500)] 
res_pjsip_pubsub: Fix multiple leaks on failure to append vectors.

Change-Id: I68ece0073ea79667ca41eb10405f516f1d30d482

7 years agores_pjsip_history: Fix multiple leaks on vector append failure.
Corey Farrell [Tue, 7 Nov 2017 00:12:13 +0000 (19:12 -0500)] 
res_pjsip_history: Fix multiple leaks on vector append failure.

Change-Id: I41e8d5183ace284095cc721f3b1fb32ade3f940f

7 years agoMerge "res_pjsip: Fix leak on error in ast_sip_auth_vector_init." into 13
Jenkins2 [Tue, 7 Nov 2017 23:38:38 +0000 (17:38 -0600)] 
Merge "res_pjsip: Fix leak on error in ast_sip_auth_vector_init." into 13

7 years agoMerge "test_sorcery_memory_cache_thrash: Handle error from vector append." into 13
Jenkins2 [Tue, 7 Nov 2017 22:48:42 +0000 (16:48 -0600)] 
Merge "test_sorcery_memory_cache_thrash: Handle error from vector append." into 13

7 years agoMerge "stasis: Release object if vector append fails." into 13
Jenkins2 [Tue, 7 Nov 2017 22:11:13 +0000 (16:11 -0600)] 
Merge "stasis: Release object if vector append fails." into 13

7 years agoMerge "format_cap: Fix leak on AST_VECTOR_APPEND error." into 13
Joshua Colp [Tue, 7 Nov 2017 20:32:15 +0000 (14:32 -0600)] 
Merge "format_cap: Fix leak on AST_VECTOR_APPEND error." into 13

7 years agoMerge "Messaging: Report error on failure to register tech or handler." into 13
Joshua Colp [Tue, 7 Nov 2017 20:31:59 +0000 (14:31 -0600)] 
Merge "Messaging: Report error on failure to register tech or handler." into 13

7 years agoMerge "CLI: Remove unused internal command." into 13
Jenkins2 [Tue, 7 Nov 2017 18:47:42 +0000 (12:47 -0600)] 
Merge "CLI: Remove unused internal command." into 13

7 years agoMerge "res_pjsip: Avoid crash when contact uri is empty string" into 13
Joshua Colp [Tue, 7 Nov 2017 18:04:41 +0000 (12:04 -0600)] 
Merge "res_pjsip:  Avoid crash when contact uri is empty string" into 13

7 years agores_pjsip_registrar.c: Fix named AOR and pjproject group deadlock.
Richard Mudgett [Mon, 6 Nov 2017 22:37:49 +0000 (16:37 -0600)] 
res_pjsip_registrar.c: Fix named AOR and pjproject group deadlock.

One of the patches for ASTERISK_27147 introduced a deadlock regression.
When the connection oriented transport shut down, the code attempted to
remove the associated contact.  However, that same transport had just
requested a registration that we hadn't responded to yet.  Depending
upon timing we could deadlock.

* Made send the REGISTER response after we completed processing the
request contacts and released the named AOR lock to avoid the deadlock.

ASTERISK-27391

Change-Id: I89a90f87cb7a02facbafb44c75d8845f93417364

7 years agoMerge "res_pjsip: Ignore empty TLS configuration" into 13
Jenkins2 [Tue, 7 Nov 2017 16:29:42 +0000 (10:29 -0600)] 
Merge "res_pjsip: Ignore empty TLS configuration" into 13

7 years agores_stasis: Fix multiple leaks.
Corey Farrell [Mon, 6 Nov 2017 23:21:53 +0000 (18:21 -0500)] 
res_stasis: Fix multiple leaks.

* res/stasis/app.c JSON passed to app_send needs to be released.
* res/stasis_message.c: objects leak if vector append fails.

Change-Id: I8dd5385b9f50a5cadf2b1d16efecffd6ddb4db4a

7 years agoMerge "tcptls: Print notice when TLS is enabled but not configured." into 13
Joshua Colp [Tue, 7 Nov 2017 15:42:34 +0000 (09:42 -0600)] 
Merge "tcptls: Print notice when TLS is enabled but not configured." into 13

7 years agores_pjsip: Avoid crash when contact uri is empty string
Aaron An [Mon, 6 Nov 2017 04:06:15 +0000 (12:06 +0800)] 
res_pjsip:  Avoid crash when contact uri is empty string

Asterisk will crash if contact uri is invalid, so contact_apply_handler
should check if the uri is NULL or empty.

ASTERISK-27393 #close
Reported-by: Aaron An
Tested-by: AaronAn
Change-Id: Ia0309bdc6b697c73c9c736e1caec910b77ca69f5

7 years agoMerge "stasis: Remove silly use of RAII_VAR in stasis_forward_all." into 13
Joshua Colp [Tue, 7 Nov 2017 14:52:39 +0000 (08:52 -0600)] 
Merge "stasis: Remove silly use of RAII_VAR in stasis_forward_all." into 13

7 years agoMerge "stasis_channels.c: Remove a very silly RAII_VAR()." into 13
Jenkins2 [Tue, 7 Nov 2017 14:09:07 +0000 (08:09 -0600)] 
Merge "stasis_channels.c: Remove a very silly RAII_VAR()." into 13

7 years agoMerge "stasis/app.c: Optimize stasis_app_get_debug_by_name()" into 13
Jenkins2 [Tue, 7 Nov 2017 13:32:58 +0000 (07:32 -0600)] 
Merge "stasis/app.c: Optimize stasis_app_get_debug_by_name()" into 13

7 years agores_pjproject.c: Fix ast_strdup() alloc failure.
Richard Mudgett [Tue, 7 Nov 2017 12:56:08 +0000 (06:56 -0600)] 
res_pjproject.c: Fix ast_strdup() alloc failure.

Change-Id: I74688038e7afe3a279359cce53aadb28ade51ead

7 years agoMerge "Fix ast_(v)asprintf() malloc failure usage conditions." into 13
Jenkins2 [Tue, 7 Nov 2017 12:41:50 +0000 (06:41 -0600)] 
Merge "Fix ast_(v)asprintf() malloc failure usage conditions." into 13

7 years agoMerge "RTP Engine: Deal with errors returned from AST_VECTOR_REPLACE." into 13
Jenkins2 [Tue, 7 Nov 2017 12:06:01 +0000 (06:06 -0600)] 
Merge "RTP Engine: Deal with errors returned from AST_VECTOR_REPLACE." into 13

7 years agores_pjsip_outbound_registration: Fix leak on vector add failure.
Corey Farrell [Mon, 6 Nov 2017 23:55:00 +0000 (18:55 -0500)] 
res_pjsip_outbound_registration: Fix leak on vector add failure.

Change-Id: I774b88b3c9da41edd4dc8d78f095481f52f2bd46

7 years agores_pjsip_config_wizard: Fix leaks and add check for malloc failure.
Corey Farrell [Mon, 6 Nov 2017 23:44:01 +0000 (18:44 -0500)] 
res_pjsip_config_wizard: Fix leaks and add check for malloc failure.

wizard_apply_handler():
- Free host if we fail to add it to the vector.

wizard_mapped_observer():
- Check for otw allocation failure.
- Free otw if we fail to add it to the vector.

Change-Id: Ib5d3bcabbd9c24dd8a3c9cc692a794a5f60243ad

7 years agotest_sorcery_memory_cache_thrash: Handle error from vector append.
Corey Farrell [Mon, 6 Nov 2017 23:33:13 +0000 (18:33 -0500)] 
test_sorcery_memory_cache_thrash: Handle error from vector append.

Cleanup resources when we fail to append the vector and report test
failure.

Change-Id: I6eb41586fd11dee8c0dfe35e91cb465a4cab7298

7 years agores_pjsip: Fix leak on error in ast_sip_auth_vector_init.
Corey Farrell [Mon, 6 Nov 2017 23:28:35 +0000 (18:28 -0500)] 
res_pjsip: Fix leak on error in ast_sip_auth_vector_init.

Change-Id: Ib0fc7a18f3135ca8990c3984c9e15f6d26e556e8

7 years agores_pjproject: Handle error from adding to the buildopts vector.
Corey Farrell [Mon, 6 Nov 2017 23:17:13 +0000 (18:17 -0500)] 
res_pjproject: Handle error from adding to the buildopts vector.

Change-Id: I076c7bd207c7989a23005395ce1735392657be65

7 years agostasis: Release object if vector append fails.
Corey Farrell [Mon, 6 Nov 2017 21:33:00 +0000 (16:33 -0500)] 
stasis: Release object if vector append fails.

Change-Id: I3e5cc669169aab6175ddfaf7486edeaeb4fdcfb1

7 years agoRTP Engine: Deal with errors returned from AST_VECTOR_REPLACE.
Corey Farrell [Mon, 6 Nov 2017 21:30:10 +0000 (16:30 -0500)] 
RTP Engine: Deal with errors returned from AST_VECTOR_REPLACE.

Check for errors from AST_VECTOR_REPLACE and clean memory if needed.

Change-Id: I124d15cc1d645f85a72a1279f623c1993b304b0b

7 years agoMessaging: Report error on failure to register tech or handler.
Corey Farrell [Mon, 6 Nov 2017 21:10:56 +0000 (16:10 -0500)] 
Messaging: Report error on failure to register tech or handler.

Message tech and handler registrations use a vector which could fail to
expand.  If it does log and error and return error.

Change-Id: I593a8de81a07fb0452e9b0efd5d4018b77bca6f4

7 years agoformat_cap: Fix leak on AST_VECTOR_APPEND error.
Corey Farrell [Mon, 6 Nov 2017 21:07:01 +0000 (16:07 -0500)] 
format_cap: Fix leak on AST_VECTOR_APPEND error.

format_cap_framed_init can fail on AST_VECTOR_APPEND.  This should
report failure to the caller and clean the newly allocated frame.

Change-Id: Ica0661235bf09497bf23d844ceb01f21b41a55b0

7 years agostasis: Remove silly use of RAII_VAR in stasis_forward_all.
Corey Farrell [Mon, 6 Nov 2017 20:23:46 +0000 (15:23 -0500)] 
stasis: Remove silly use of RAII_VAR in stasis_forward_all.

Change-Id: I46de4c968d40144d5b049966304ff66c1469fb65

7 years agoCLI: Remove unused internal command.
Corey Farrell [Mon, 6 Nov 2017 18:51:32 +0000 (13:51 -0500)] 
CLI: Remove unused internal command.

The internal CLI command "_command complete" was last used by Asterisk
0.2.0.  Since then we've been using "_command nummatches" and "_command
matchesarray".

Change-Id: I682fe1e21a24a3bb5bd04146e639f1c5866bcfce

7 years agostasis_bridges.c: Fix off-nominal json memory leaks.
Richard Mudgett [Fri, 3 Nov 2017 23:08:37 +0000 (18:08 -0500)] 
stasis_bridges.c: Fix off-nominal json memory leaks.

Change-Id: Ib1181a36b317c86bff1ef2e44a17a0b1c73cfdc8

7 years agores_pjsip_pubsub: Ensure remote URI contains URI only.
Joshua Colp [Mon, 6 Nov 2017 16:29:33 +0000 (16:29 +0000)] 
res_pjsip_pubsub: Ensure remote URI contains URI only.

This change makes it so that any user of the pubsub
API that requests the remote URI receives only the URI.
Previously the entire string was returned, which could
contain a display name.

ASTERISK-27290

Change-Id: If1d0cd6630f0a264856d31d2a67933109187a017

7 years agostasis_channels.c: Remove a very silly RAII_VAR().
Richard Mudgett [Fri, 3 Nov 2017 22:43:18 +0000 (17:43 -0500)] 
stasis_channels.c: Remove a very silly RAII_VAR().

Change-Id: I28b458b3c1a442c4ef0be7b4986a95ea4149e14f

7 years agostasis/app.c: Optimize stasis_app_get_debug_by_name()
Richard Mudgett [Fri, 3 Nov 2017 21:14:15 +0000 (16:14 -0500)] 
stasis/app.c: Optimize stasis_app_get_debug_by_name()

* Eliminate RAII_VAR()
* Short circuit application name lookup if global debug enabled.

Change-Id: I5f78b7bd6ca7fd2c3b07cbbe036c6a93b4681123

7 years agoFix ast_(v)asprintf() malloc failure usage conditions.
Richard Mudgett [Thu, 2 Nov 2017 23:40:20 +0000 (18:40 -0500)] 
Fix ast_(v)asprintf() malloc failure usage conditions.

When (v)asprintf() fails, the state of the allocated buffer is undefined.
The library had better not leave an allocated buffer as a result or no one
will know to free it.  The most likely way it can return failure is for an
allocation failure.  If the printf conversion fails then you actually have
a threading problem which is much worse because another thread modified
the parameter values.

* Made __ast_asprintf()/__ast_vasprintf() set the returned buffer to NULL
on failure.  That is much more useful than either an uninitialized pointer
or a pointer that has already been freed.  Many uses won't have to check
for failure to ensure that the buffer won't be double freed or prevent an
attempt to free an uninitialized pointer.

* stasis.c: Fixed memory leak in multi_object_blob_to_ami() allocated by
ast_asprintf().

* ari/resource_bridges.c:ari_bridges_play_helper(): Remove assignment to
the wrong thing which is now not needed even if assigning to the right
thing.

Change-Id: Ib5252fb8850ecf0f78ed0ee2ca0796bda7e91c23

7 years agoMerge "install_prereq: Checkout of libSRTP 2.x." into 13
Jenkins2 [Mon, 6 Nov 2017 17:29:23 +0000 (11:29 -0600)] 
Merge "install_prereq: Checkout of libSRTP 2.x." into 13

7 years agoMerge "configure: Add autoconf check for libopusfile." into 13
Jenkins2 [Mon, 6 Nov 2017 17:05:55 +0000 (11:05 -0600)] 
Merge "configure: Add autoconf check for libopusfile." into 13

7 years agoMerge "Prevent unload of modules which implement an Optional API." into 13
Jenkins2 [Mon, 6 Nov 2017 15:41:29 +0000 (09:41 -0600)] 
Merge "Prevent unload of modules which implement an Optional API." into 13

7 years agoMerge "Add missing menuselect dependencies." into 13
Jenkins2 [Mon, 6 Nov 2017 14:46:22 +0000 (08:46 -0600)] 
Merge "Add missing menuselect dependencies." into 13

7 years agoMerge "Stasis/ARI: Fix off-nominal path json memory leaks." into 13
Joshua Colp [Mon, 6 Nov 2017 14:39:20 +0000 (08:39 -0600)] 
Merge "Stasis/ARI: Fix off-nominal path json memory leaks." into 13

7 years agores_pjsip: Ignore empty TLS configuration
Sean Bright [Mon, 6 Nov 2017 14:05:56 +0000 (09:05 -0500)] 
res_pjsip: Ignore empty TLS configuration

When using realtime, fields that are not explicitly set by an
administrator are still presented to sorcery as empty strings. Handle
this case explicitly.

In this particular case, if any of these fields are required for TLS
support, their existence should be validated in the 'apply' handler once
we have a complete transport definition.

ASTERISK-27032 #close
Reported by: seanchann.zhou

Change-Id: Ie3b5fb421977ccdb33e415d4ec52c3fd192601b7

7 years agoMerge "AOC: Fix AOC-S json memory leak." into 13
Jenkins2 [Mon, 6 Nov 2017 13:19:41 +0000 (07:19 -0600)] 
Merge "AOC: Fix AOC-S json memory leak." into 13

7 years agoMerge "res_stasis_mailbox.c: Fix leak of mailbox container." into 13
Jenkins2 [Mon, 6 Nov 2017 12:27:29 +0000 (06:27 -0600)] 
Merge "res_stasis_mailbox.c: Fix leak of mailbox container." into 13

7 years agoMerge "Build System: Fix build failure caused by recent CLI improvements." into 13
Jenkins2 [Mon, 6 Nov 2017 11:58:51 +0000 (05:58 -0600)] 
Merge "Build System: Fix build failure caused by recent CLI improvements." into 13

7 years agotcptls: Print notice when TLS is enabled but not configured.
Alexander Traud [Mon, 6 Nov 2017 09:18:24 +0000 (10:18 +0100)] 
tcptls: Print notice when TLS is enabled but not configured.

Asterisk can be compiled without a SSL/TLS library, without the Development
Headers of OpenSSL. However, if TLS (SIP) or Secure-WebSockets (WebRTC) was
enabled in a configuration file, Asterisk did not notice the user. Asterisk
failed silently, only the corresponding TCP ports were not open.

ASTERISK-27394
Reported-by: mossley74
Change-Id: Ib8b7539a5b2af8154c22e5f7a40fc68f95d95b93

7 years agoconfigure: Add autoconf check for libopusfile.
Corey Farrell [Mon, 6 Nov 2017 09:21:12 +0000 (04:21 -0500)] 
configure: Add autoconf check for libopusfile.

This check is being added to make it easier for end-users of third party
open source Opus modules.  This was removed by ASTERISK-26426 but only
the module needed to be removed.

Change-Id: I62b9cd0c4fa8a77596ab0e042948a643a1152677

7 years agoinstall_prereq: Checkout of libSRTP 2.x.
Alexander Traud [Sat, 4 Nov 2017 11:05:36 +0000 (12:05 +0100)] 
install_prereq: Checkout of libSRTP 2.x.

Since Asterisk 13.17, libSRTP 2.x is supported. Therefore, its latest version
is installed again via the script install_prereq.

ASTERISK-27356

Change-Id: I13125839a79052356469e41edacbebff0a937d39

7 years agoStasis/ARI: Fix off-nominal path json memory leaks.
Richard Mudgett [Wed, 1 Nov 2017 22:47:57 +0000 (17:47 -0500)] 
Stasis/ARI: Fix off-nominal path json memory leaks.

Change-Id: Id569c624c426e3b22a99936473c730592d8b83fb