Commit Graph

29414 Commits

Author SHA1 Message Date
Jenkins2
d74b50ecf7 Merge "core: Fix configuration of remote console socket path." into 13 2017-11-14 10:19:21 -06:00
Jenkins2
d7303f6337 Merge "pjsip: Add patch to allow all transports to be destroyed." into 13 2017-11-14 08:52:30 -06:00
Joshua Colp
f233e421dd Merge "core: Add cache_media_frames debugging option." into 13 2017-11-14 07:15:40 -06:00
Corey Farrell
b8209a1273 alertpipe: Correct documented return of ast_alertpipe_write.
Change-Id: I4ea49c441890a81384144479dc93ab5a3989486d
2017-11-13 18:48:16 -05:00
Jenkins2
4aadd2e495 Merge "vectors: Add new macro and a string vector definition." into 13 2017-11-13 16:58:36 -06:00
Corey Farrell
9c6d4ec022 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
2017-11-13 17:28:16 -05:00
Jenkins2
c7b7aefbc7 Merge "menuselect: Delete and ignore aclocal.m4." into 13 2017-11-13 16:01:51 -06:00
Corey Farrell
2ad6210dd7 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
2017-11-13 13:38:26 -05:00
Joshua Colp
b1743cb3c7 Merge "Build System: Disable parallel make in the root Makefile." into 13 2017-11-13 07:20:47 -06:00
Jenkins2
bcd2241c47 Merge "res_pjsip_pubsub: Ensure remote URI contains URI only." into 13 2017-11-13 06:32:28 -06:00
Corey Farrell
b03d389bec 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
2017-11-11 17:34:48 -05:00
Richard Mudgett
507d9b5f9e 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
2017-11-11 13:45:22 -06:00
Richard Mudgett
bb2173275a frame.c: Make ast_frame_free()/ast_frfree() NULL tolerant
Change-Id: Ic49d821ef88ada38a31bdd835b9531443c55d793
2017-11-11 13:03:31 -06:00
Jenkins2
1250b7c664 Merge "chan_pjsip.c: Fix uninitialized cause value on failure." into 13 2017-11-10 08:18:04 -06:00
Joshua Colp
360d50d74c 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
2017-11-10 13:15:04 +00:00
Corey Farrell
211f5d8dd4 core: Remove disabled code.
handle_quit has been disabled since 2003, remove it.

Change-Id: Idc3aaa6c81676160547078f9b71e8aa43de2db18
2017-11-09 21:38:11 -05:00
Jenkins2
6cce744401 Merge "stasis_bridges.c: Fix off-nominal json memory leaks." into 13 2017-11-09 17:44:16 -06:00
Corey Farrell
d12be40750 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
2017-11-09 14:30:18 -05:00
Kevin Harwell
e3bc8f7815 Merge "res_pjsip_registrar.c: Fix named AOR and pjproject group deadlock." into 13 2017-11-09 11:48:50 -06:00
Richard Mudgett
32042c6c3c chan_pjsip.c: Fix uninitialized cause value on failure.
Change-Id: I3f9dd3c31bd582e54a30381500077de2319d8cc3
2017-11-09 07:39:59 -06:00
Joshua Colp
7296d3e5af Merge "res_pjsip_history: Fix multiple leaks on vector append failure." into 13 2017-11-09 03:44:21 -06:00
Jenkins2
88d3773330 Merge "res_pjsip_pubsub: Fix multiple leaks on failure to append vectors." into 13 2017-11-08 20:56:26 -06:00
George Joseph
67d12d1437 Merge "AST-2017-009: pjproject: Add validation of numeric header values" into 13 2017-11-08 09:52:22 -06:00
George Joseph
62e70c70a5 Merge "AST-2017-011 - res_pjsip_session: session leak when a call is rejected" into 13 2017-11-08 09:44:40 -06:00
George Joseph
b2fbf1afd7 Merge "AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun" into 13 2017-11-08 08:26:10 -06:00
Jenkins2
936a85419e Merge "res_pjproject.c: Fix ast_strdup() alloc failure." into 13 2017-11-08 07:06:15 -06:00
Jenkins2
cdafec0f7a Merge "res_pjsip_outbound_registration: Fix leak on vector add failure." into 13 2017-11-08 07:03:37 -06:00
Kevin Harwell
4b3e03ae87 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
2017-11-08 05:46:37 -07:00
Richard Mudgett
2b85799512 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
2017-11-08 05:37:52 -07:00
George Joseph
2faa3e3bab 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
2017-11-08 05:21:26 -07:00
Joshua Colp
4e8271c2a5 Merge "res_stasis: Fix multiple leaks." into 13 2017-11-08 04:59:15 -06:00
Jenkins2
fe78531d5e Merge "res_pjsip_config_wizard: Fix leaks and add check for malloc failure." into 13 2017-11-07 22:48:08 -06:00
Corey Farrell
16df0e9786 res_pjsip_pubsub: Fix multiple leaks on failure to append vectors.
Change-Id: I68ece0073ea79667ca41eb10405f516f1d30d482
2017-11-07 22:38:04 -05:00
Corey Farrell
cf91dde509 res_pjsip_history: Fix multiple leaks on vector append failure.
Change-Id: I41e8d5183ace284095cc721f3b1fb32ade3f940f
2017-11-07 22:31:07 -05:00
Jenkins2
5c47ee4476 Merge "res_pjsip: Fix leak on error in ast_sip_auth_vector_init." into 13 2017-11-07 17:38:38 -06:00
Jenkins2
34065994fe Merge "test_sorcery_memory_cache_thrash: Handle error from vector append." into 13 2017-11-07 16:48:42 -06:00
Jenkins2
841fc3e5c2 Merge "stasis: Release object if vector append fails." into 13 2017-11-07 16:11:13 -06:00
Joshua Colp
7657519a53 Merge "format_cap: Fix leak on AST_VECTOR_APPEND error." into 13 2017-11-07 14:32:15 -06:00
Joshua Colp
5a60ce3ee3 Merge "Messaging: Report error on failure to register tech or handler." into 13 2017-11-07 14:31:59 -06:00
Jenkins2
cb1ec6255f Merge "CLI: Remove unused internal command." into 13 2017-11-07 12:47:42 -06:00
Joshua Colp
40f906add4 Merge "res_pjsip: Avoid crash when contact uri is empty string" into 13 2017-11-07 12:04:41 -06:00
Richard Mudgett
7ad4c19b20 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
2017-11-07 12:00:24 -06:00
Jenkins2
8824ed44dc Merge "res_pjsip: Ignore empty TLS configuration" into 13 2017-11-07 10:29:42 -06:00
Corey Farrell
c1a608f862 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
2017-11-07 11:24:51 -05:00
Joshua Colp
5d19dc2cb1 Merge "tcptls: Print notice when TLS is enabled but not configured." into 13 2017-11-07 09:42:34 -06:00
Aaron An
d95bfcd013 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
2017-11-07 10:33:06 -05:00
Joshua Colp
315ccf40f4 Merge "stasis: Remove silly use of RAII_VAR in stasis_forward_all." into 13 2017-11-07 08:52:39 -06:00
Jenkins2
ec40b74e51 Merge "stasis_channels.c: Remove a very silly RAII_VAR()." into 13 2017-11-07 08:09:07 -06:00
Jenkins2
01064bd6bc Merge "stasis/app.c: Optimize stasis_app_get_debug_by_name()" into 13 2017-11-07 07:32:58 -06:00
Richard Mudgett
ec58521a48 res_pjproject.c: Fix ast_strdup() alloc failure.
Change-Id: I74688038e7afe3a279359cce53aadb28ade51ead
2017-11-07 07:10:27 -06:00