asterisk/asterisk.git
3 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

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

3 years agoMerge "res_pjsip_pubsub: Ensure remote URI contains URI only."
Jenkins2 [Mon, 13 Nov 2017 13:11:57 +0000 (07:11 -0600)]
Merge "res_pjsip_pubsub: Ensure remote URI contains URI only."

3 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

3 years agoMerge "core: Remove disabled code."
Joshua Colp [Fri, 10 Nov 2017 14:00:32 +0000 (08:00 -0600)]
Merge "core: Remove disabled code."

3 years agoMerge "chan_pjsip.c: Fix uninitialized cause value on failure."
Joshua Colp [Fri, 10 Nov 2017 14:00:12 +0000 (08:00 -0600)]
Merge "chan_pjsip.c: Fix uninitialized cause value on failure."

3 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

3 years agoMerge "stasis_bridges.c: Fix off-nominal json memory leaks."
Joshua Colp [Fri, 10 Nov 2017 00:05:09 +0000 (18:05 -0600)]
Merge "stasis_bridges.c: Fix off-nominal json memory leaks."

3 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

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

3 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

3 years agoMerge "res_pjsip_pubsub: Fix multiple leaks on failure to append vectors."
Joshua Colp [Thu, 9 Nov 2017 09:44:56 +0000 (03:44 -0600)]
Merge "res_pjsip_pubsub: Fix multiple leaks on failure to append vectors."

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

3 years agoMerge "res_pjsip_session: Fix multiple leaks."
Joshua Colp [Thu, 9 Nov 2017 09:43:58 +0000 (03:43 -0600)]
Merge "res_pjsip_session: Fix multiple leaks."

3 years agoMerge "main/sdp_state: Check for errors from ast_stream_topology_set_stream."
Joshua Colp [Thu, 9 Nov 2017 09:43:35 +0000 (03:43 -0600)]
Merge "main/sdp_state: Check for errors from ast_stream_topology_set_stream."

3 years agoMerge "bridge_softmix: Note why ast_stream_topology_set_stream cannot fail."
Joshua Colp [Thu, 9 Nov 2017 09:42:51 +0000 (03:42 -0600)]
Merge "bridge_softmix: Note why ast_stream_topology_set_stream cannot fail."

3 years agoMerge "res_pjsip_session: Check for errors from ast_stream_topology_set_stream."
Joshua Colp [Thu, 9 Nov 2017 09:42:34 +0000 (03:42 -0600)]
Merge "res_pjsip_session: Check for errors from ast_stream_topology_set_stream."

3 years agoMerge "res_pjsip_t38: Better error checking for t38_create_media_state."
Joshua Colp [Wed, 8 Nov 2017 19:11:27 +0000 (13:11 -0600)]
Merge "res_pjsip_t38: Better error checking for t38_create_media_state."

3 years agobridge_softmix: Note why ast_stream_topology_set_stream cannot fail.
Corey Farrell [Tue, 7 Nov 2017 17:49:35 +0000 (12:49 -0500)]
bridge_softmix: Note why ast_stream_topology_set_stream cannot fail.

This appeared in my audit of ast_stream_topology_set_stream callers
not checking for errors but in this situation the call cannot fail.
Add comment so this can be ignored in the future.

Change-Id: I91d25704859efbe50b8b82cfe1cd3c40ba177c9f

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

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

3 years agoMerge "AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun"
George Joseph [Wed, 8 Nov 2017 14:25:54 +0000 (08:25 -0600)]
Merge "AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun"

3 years agoMerge "res_pjproject.c: Fix ast_strdup() alloc failure."
Joshua Colp [Wed, 8 Nov 2017 13:38:45 +0000 (07:38 -0600)]
Merge "res_pjproject.c: Fix ast_strdup() alloc failure."

3 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

3 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

3 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

3 years agoMerge "stream: Return error from ast_stream_topology_set_stream."
Jenkins2 [Wed, 8 Nov 2017 12:06:51 +0000 (06:06 -0600)]
Merge "stream: Return error from ast_stream_topology_set_stream."

3 years agoMerge "res_stasis: Fix multiple leaks."
Joshua Colp [Wed, 8 Nov 2017 10:58:12 +0000 (04:58 -0600)]
Merge "res_stasis: Fix multiple leaks."

3 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

3 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

3 years agores_pjsip_session: Fix multiple leaks.
Corey Farrell [Tue, 7 Nov 2017 00:01:38 +0000 (19:01 -0500)]
res_pjsip_session: Fix multiple leaks.

* Pre-initialize cloned media state vectors to final size to ensure
  vector errors cannot happen later in the clone initialization.
* Release session_media on vector replace failure in
  ast_sip_session_media_state_add.
* Release clone and media_state in ast_sip_session_refresh if we fail to
  append to the stream topology, return an error.

Change-Id: Ib5ffc9b198683fa7e9bf166d74d30c1334c23acb

3 years agoMerge "res_pjsip_outbound_registration: Fix leak on vector add failure."
Jenkins2 [Wed, 8 Nov 2017 02:39:31 +0000 (20:39 -0600)]
Merge "res_pjsip_outbound_registration: Fix leak on vector add failure."

3 years agoMerge "res_pjsip_exten_state: Check for vector append failure."
Jenkins2 [Wed, 8 Nov 2017 02:06:26 +0000 (20:06 -0600)]
Merge "res_pjsip_exten_state: Check for vector append failure."

3 years agoMerge "res_pjsip_config_wizard: Fix leaks and add check for malloc failure."
Jenkins2 [Wed, 8 Nov 2017 01:41:46 +0000 (19:41 -0600)]
Merge "res_pjsip_config_wizard: Fix leaks and add check for malloc failure."

3 years agoMerge "res_stasis_playback: Check for failure to append vector."
Jenkins2 [Wed, 8 Nov 2017 01:02:20 +0000 (19:02 -0600)]
Merge "res_stasis_playback: Check for failure to append vector."

3 years agoMerge "res_pjsip: Fix leak on error in ast_sip_auth_vector_init."
Jenkins2 [Wed, 8 Nov 2017 00:14:28 +0000 (18:14 -0600)]
Merge "res_pjsip: Fix leak on error in ast_sip_auth_vector_init."

3 years agoMerge "test_sorcery_memory_cache_thrash: Handle error from vector append."
Jenkins2 [Tue, 7 Nov 2017 23:32:48 +0000 (17:32 -0600)]
Merge "test_sorcery_memory_cache_thrash: Handle error from vector append."

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

3 years agoMerge "res_ari_events: Fix use after free / double-free of JSON message."
Jenkins2 [Tue, 7 Nov 2017 22:10:11 +0000 (16:10 -0600)]
Merge "res_ari_events: Fix use after free / double-free of JSON message."

3 years agoMerge "PBX: Handle errors from AST_VECTOR_APPEND."
Jenkins2 [Tue, 7 Nov 2017 21:27:26 +0000 (15:27 -0600)]
Merge "PBX: Handle errors from AST_VECTOR_APPEND."

3 years agoMerge "Messaging: Report error on failure to register tech or handler."
Jenkins2 [Tue, 7 Nov 2017 20:58:05 +0000 (14:58 -0600)]
Merge "Messaging: Report error on failure to register tech or handler."

3 years agoMerge "format_cap: Fix leak on AST_VECTOR_APPEND error."
Jenkins2 [Tue, 7 Nov 2017 20:20:02 +0000 (14:20 -0600)]
Merge "format_cap: Fix leak on AST_VECTOR_APPEND error."

3 years agoMerge "CLI: Remove unused internal command."
Jenkins2 [Tue, 7 Nov 2017 19:02:30 +0000 (13:02 -0600)]
Merge "CLI: Remove unused internal command."

3 years agoMerge "res_pjsip: Avoid crash when contact uri is empty string"
Jenkins2 [Tue, 7 Nov 2017 18:08:44 +0000 (12:08 -0600)]
Merge "res_pjsip:  Avoid crash when contact uri is empty string"

3 years agomain/sdp_state: Check for errors from ast_stream_topology_set_stream.
Corey Farrell [Tue, 7 Nov 2017 18:03:34 +0000 (13:03 -0500)]
main/sdp_state: Check for errors from ast_stream_topology_set_stream.

Change-Id: I84a83ae69daba5d185cc1d939b133a4c23565497

3 years agores_pjsip_registrar.c: Fix AOR and pjproject group deadlock.
Richard Mudgett [Mon, 6 Nov 2017 22:37:49 +0000 (16:37 -0600)]
res_pjsip_registrar.c: Fix 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 AOR lock to avoid the deadlock.

ASTERISK-27391

Change-Id: I89a90f87cb7a02facbafb44c75d8845f93417364

3 years agores_pjsip_session: Check for errors from ast_stream_topology_set_stream.
Corey Farrell [Tue, 7 Nov 2017 17:40:08 +0000 (12:40 -0500)]
res_pjsip_session: Check for errors from ast_stream_topology_set_stream.

Free memory and return error if ast_stream_topology_set_stream fails.

Change-Id: I9f4dbf44bed627243d2f1dd8aea2eab6c38a028d

3 years agores_pjsip_t38: Better error checking for t38_create_media_state.
Corey Farrell [Tue, 7 Nov 2017 17:34:19 +0000 (12:34 -0500)]
res_pjsip_t38: Better error checking for t38_create_media_state.

Change-Id: I81b2587427c6982aa3e2a3f9ad69cce8d316eb10

3 years agoMerge "res_pjsip: Ignore empty TLS configuration"
Jenkins2 [Tue, 7 Nov 2017 17:05:13 +0000 (11:05 -0600)]
Merge "res_pjsip: Ignore empty TLS configuration"

3 years agostream: Return error from ast_stream_topology_set_stream.
Corey Farrell [Mon, 6 Nov 2017 21:38:05 +0000 (16:38 -0500)]
stream: Return error from ast_stream_topology_set_stream.

ast_stream_topology_set_stream had suppressed error codes from
AST_VECTOR_APPEND.  The result of AST_VECTOR_APPEND needs to be returned
to the caller so they can take appropriate action on the stream.

Change-Id: I6c0d12755743eadba1357f6153526cc055592856

3 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

3 years agoMerge "tcptls: Print notice when TLS is enabled but not configured."
Joshua Colp [Tue, 7 Nov 2017 16:12:41 +0000 (10:12 -0600)]
Merge "tcptls: Print notice when TLS is enabled but not configured."

3 years agoMerge "stasis: Remove silly use of RAII_VAR in stasis_forward_all."
Joshua Colp [Tue, 7 Nov 2017 15:32:45 +0000 (09:32 -0600)]
Merge "stasis: Remove silly use of RAII_VAR in stasis_forward_all."

3 years agoMerge "stasis_channels.c: Remove a very silly RAII_VAR()."
Joshua Colp [Tue, 7 Nov 2017 14:44:12 +0000 (08:44 -0600)]
Merge "stasis_channels.c: Remove a very silly RAII_VAR()."

3 years agoMerge "stasis/app.c: Optimize stasis_app_get_debug_by_name()"
Joshua Colp [Tue, 7 Nov 2017 13:57:39 +0000 (07:57 -0600)]
Merge "stasis/app.c: Optimize stasis_app_get_debug_by_name()"

3 years agoMerge "Fix ast_(v)asprintf() malloc failure usage conditions."
Joshua Colp [Tue, 7 Nov 2017 13:18:12 +0000 (07:18 -0600)]
Merge "Fix ast_(v)asprintf() malloc failure usage conditions."

3 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

3 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

3 years agoMerge "RTP Engine: Deal with errors returned from AST_VECTOR_REPLACE."
Joshua Colp [Tue, 7 Nov 2017 12:36:32 +0000 (06:36 -0600)]
Merge "RTP Engine: Deal with errors returned from AST_VECTOR_REPLACE."

3 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

3 years agores_pjsip_exten_state: Check for vector append failure.
Corey Farrell [Mon, 6 Nov 2017 23:48:06 +0000 (18:48 -0500)]
res_pjsip_exten_state: Check for vector append failure.

Release reference to publisher if we fail to add it to the vector.

Change-Id: I64dff3f481b67b9884f37cadba7a5ccf23d084f3

3 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

3 years agores_stasis_playback: Check for failure to append vector.
Corey Farrell [Mon, 6 Nov 2017 23:38:35 +0000 (18:38 -0500)]
res_stasis_playback: Check for failure to append vector.

Free resources and return error if we fail to append the vector in
stasis_app_control_play_uri.

Change-Id: I22c4a90dd859b253f2850c6511de48b25609422b

3 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

3 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

3 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

3 years agores_ari_events: Fix use after free / double-free of JSON message.
Corey Farrell [Mon, 6 Nov 2017 23:11:08 +0000 (18:11 -0500)]
res_ari_events: Fix use after free / double-free of JSON message.

When stasis_app_message_handler needs to queue a message for a later
connection it needs to bump the message reference so it doesn't get
freed when the caller releases it's reference.

Change-Id: I82696df8fe723b3365c15c3f7089501da8daa892

3 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

3 years agoRTP Engine: Deal with errors returned from AST_VECTOR_REPLACE.
Corey Farrell [Mon, 6 Nov 2017 21:20:06 +0000 (16:20 -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

3 years agoPBX: Handle errors from AST_VECTOR_APPEND.
Corey Farrell [Mon, 6 Nov 2017 21:16:35 +0000 (16:16 -0500)]
PBX: Handle errors from AST_VECTOR_APPEND.

This resolves potentials leaks on AST_VECTOR_APPEND error in:
* ast_context_add_include2
* ast_context_add_switch2
* ast_context_add_ignorepat2

Change-Id: Ib60e95c4f622fa3b832d87227c0523a695d736b6

3 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

3 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

3 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

3 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

3 years agoMerge "dtls: Add support for ephemeral DTLS certificates."
Joshua Colp [Mon, 6 Nov 2017 18:22:38 +0000 (12:22 -0600)]
Merge "dtls: Add support for ephemeral DTLS certificates."

3 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

3 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

3 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

3 years agoMerge "install_prereq: Checkout of libSRTP 2.x."
Joshua Colp [Mon, 6 Nov 2017 17:57:58 +0000 (11:57 -0600)]
Merge "install_prereq: Checkout of libSRTP 2.x."

3 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

3 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

3 years agoMerge "configure: Add autoconf check for libopusfile."
Joshua Colp [Mon, 6 Nov 2017 16:38:18 +0000 (10:38 -0600)]
Merge "configure: Add autoconf check for libopusfile."

3 years agoMerge "Prevent unload of modules which implement an Optional API."
Joshua Colp [Mon, 6 Nov 2017 16:11:51 +0000 (10:11 -0600)]
Merge "Prevent unload of modules which implement an Optional API."

3 years agoMerge "Add missing menuselect dependencies."
Joshua Colp [Mon, 6 Nov 2017 15:26:18 +0000 (09:26 -0600)]
Merge "Add missing menuselect dependencies."

3 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

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

3 years agoMerge "AOC: Fix AOC-S json memory leak."
Joshua Colp [Mon, 6 Nov 2017 13:51:36 +0000 (07:51 -0600)]
Merge "AOC: Fix AOC-S json memory leak."

3 years agoMerge "res_stasis_mailbox.c: Fix leak of mailbox container."
Joshua Colp [Mon, 6 Nov 2017 13:17:22 +0000 (07:17 -0600)]
Merge "res_stasis_mailbox.c: Fix leak of mailbox container."

3 years agodtls: Add support for ephemeral DTLS certificates.
Sean Bright [Fri, 29 Sep 2017 14:50:17 +0000 (14:50 +0000)]
dtls: Add support for ephemeral DTLS certificates.

This mimics the behavior of Chrome and Firefox and creates an ephemeral
X.509 certificate for each DTLS session.

Currently, the only supported key type is ECDSA because of its faster
generation time, but other key types can be added in the future as
necessary.

ASTERISK-27395

Change-Id: I5122e5f4b83c6320cc17407a187fcf491daf30b4

3 years agoMerge "Build System: Fix build failure caused by recent CLI improvements."
Joshua Colp [Mon, 6 Nov 2017 12:31:28 +0000 (06:31 -0600)]
Merge "Build System: Fix build failure caused by recent CLI improvements."

3 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

3 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

3 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

3 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

3 years agoAOC: Fix AOC-S json memory leak.
Richard Mudgett [Thu, 2 Nov 2017 16:38:23 +0000 (11:38 -0500)]
AOC: Fix AOC-S json memory leak.

Change-Id: I3a1d40a41a8a7d00fa4a187de6a343a79155d3ef

3 years agores_stasis_device_state.c: Optimize stasis_app_device_states_to_json()
Richard Mudgett [Wed, 1 Nov 2017 23:04:31 +0000 (18:04 -0500)]
res_stasis_device_state.c: Optimize stasis_app_device_states_to_json()

* Eliminate RAII_VAR()
* Replace looped alloca with a char[] since that is how it is used anyway.

Change-Id: Ia27e64a884afa0f50b9ffdb1cf23da6bfa51ffdf

3 years agores_stasis_mailbox.c: Fix leak of mailbox container.
Richard Mudgett [Wed, 1 Nov 2017 23:58:08 +0000 (18:58 -0500)]
res_stasis_mailbox.c: Fix leak of mailbox container.

Change-Id: I7d33c1635713047e7d1597c9d882f7dc006d94b4

3 years agoBuild System: Fix build failure caused by recent CLI improvements.
Corey Farrell [Fri, 3 Nov 2017 15:35:34 +0000 (11:35 -0400)]
Build System: Fix build failure caused by recent CLI improvements.

We use the editline library to help with filename completion in our CLI
interface.  Some systems failed to find the header when included from
loader.c.  This is fixed by setting the proper CFLAGS for the build of
loader.o.

ASTERISK-27378

Change-Id: Ib7fd496f1d7ed48141a2eadd5dd61cab2f2308be

3 years agoMerge "res_pjsip: Add to list of valid characters for from_user."
Joshua Colp [Fri, 3 Nov 2017 14:06:47 +0000 (09:06 -0500)]
Merge "res_pjsip: Add to list of valid characters for from_user."

3 years agoMerge "Modules: Additional improvements to CLI completion."
Joshua Colp [Fri, 3 Nov 2017 12:55:27 +0000 (07:55 -0500)]
Merge "Modules: Additional improvements to CLI completion."