summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-11-14Merge "bundled_pjproject: Update to 2.7.1" into 15Joshua Colp
2017-11-14Merge "bundled_pjproject: sip_parser: Fix return code in pjsip_find_msg" ↵Joshua Colp
into 15
2017-11-14pjsip / hep: Provide correct local address for Websockets.Joshua Colp
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
2017-11-14Merge "core: Fix configuration of remote console socket path." into 15Jenkins2
2017-11-14Merge "pjsip: Add patch to allow all transports to be destroyed." into 15Joshua Colp
2017-11-14Merge "core: Add cache_media_frames debugging option." into 15Jenkins2
2017-11-13alertpipe: Correct documented return of ast_alertpipe_write.Corey Farrell
Change-Id: I4ea49c441890a81384144479dc93ab5a3989486d
2017-11-13Merge "vectors: Add new macro and a string vector definition." into 15Jenkins2
2017-11-13core: Fix configuration of remote console socket path.Corey Farrell
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-13Merge "menuselect: Delete and ignore aclocal.m4." into 15Jenkins2
2017-11-13sorcery: Add ast_sorcery_retrieve_by_prefix()Sean Bright
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
2017-11-13bundled_pjproject: sip_parser: Fix return code in pjsip_find_msgGeorge Joseph
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
2017-11-13bundled_pjproject: Update to 2.7.1Ben Ford
Update from 2.7 to 2.7.1 for bundled pjproject. Changed version and removed patch files included in the update. Change-Id: I55cea8e734b318c2df9daf86aa0802c559ec8357
2017-11-13vectors: Add new macro and a string vector definition.Corey Farrell
* 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-13Build: Make function constructor/destructor attributes mandatory.Corey Farrell
This change causes the configure script to fail if the C compiler does not support both function attributes constructor and destructor. These were already required as modules cannot function without these attributes and Asterisk requires modules. This also has AST_GCC_ATTRIBUTE set a variable ax_cv_have_func_attribute_$1. This is the same variable name used by autoconf-archive's AX_GCC_FUNC_ATTRIBUTE, used for the same purpose. Change-Id: Id68e8a1447f2a6d707c54b56350e7bfdb33fb663
2017-11-13Merge "Build System: Disable parallel make in the root Makefile." into 15Joshua Colp
2017-11-13Merge "res_pjsip_pubsub: Ensure remote URI contains URI only." into 15Jenkins2
2017-11-11menuselect: Delete and ignore aclocal.m4.Corey Farrell
This file is temporary output from the bootstrap.sh command, it does not need to be committed. Change-Id: Ie0fd113aff6eac44924c0bd0c900833c6c86a6d9
2017-11-11core: Add cache_media_frames debugging option.Richard Mudgett
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-11frame.c: Make ast_frame_free()/ast_frfree() NULL tolerantRichard Mudgett
Change-Id: Ic49d821ef88ada38a31bdd835b9531443c55d793
2017-11-10Merge "chan_pjsip.c: Fix uninitialized cause value on failure." into 15Jenkins2
2017-11-10pjsip: Add patch to allow all transports to be destroyed.Joshua Colp
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-09core: Remove disabled code.Corey Farrell
handle_quit has been disabled since 2003, remove it. Change-Id: Idc3aaa6c81676160547078f9b71e8aa43de2db18
2017-11-09Merge "stasis_bridges.c: Fix off-nominal json memory leaks." into 15Jenkins2
2017-11-09Build System: Disable parallel make in the root Makefile.Corey Farrell
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-09Merge "res_pjsip_registrar.c: Fix AOR and pjproject group deadlock." into 15Kevin Harwell
2017-11-09chan_pjsip.c: Fix uninitialized cause value on failure.Richard Mudgett
Change-Id: I3f9dd3c31bd582e54a30381500077de2319d8cc3
2017-11-09Merge "res_pjsip_pubsub: Fix multiple leaks on failure to append vectors." ↵Joshua Colp
into 15
2017-11-09Merge "res_pjsip_history: Fix multiple leaks on vector append failure." into 15Joshua Colp
2017-11-09Merge "res_pjsip_session: Fix multiple leaks." into 15Joshua Colp
2017-11-09Merge "bridge_softmix: Note why ast_stream_topology_set_stream cannot fail." ↵Joshua Colp
into 15
2017-11-09Merge "res_pjsip_session: Check for errors from ↵Joshua Colp
ast_stream_topology_set_stream." into 15
2017-11-08Merge "res_pjsip_t38: Better error checking for t38_create_media_state." into 15Joshua Colp
2017-11-08bridge_softmix: Note why ast_stream_topology_set_stream cannot fail.Corey Farrell
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
2017-11-08Merge "AST-2017-009: pjproject: Add validation of numeric header values" into 15George Joseph
2017-11-08Merge "AST-2017-011 - res_pjsip_session: session leak when a call is ↵George Joseph
rejected" into 15
2017-11-08Merge "AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf ↵George Joseph
overrun" into 15
2017-11-08Merge "res_pjproject.c: Fix ast_strdup() alloc failure." into 15Jenkins2
2017-11-08AST-2017-011 - res_pjsip_session: session leak when a call is rejectedKevin Harwell
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-08AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrunRichard Mudgett
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-08AST-2017-009: pjproject: Add validation of numeric header valuesGeorge Joseph
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-08Merge "res_pjsip_exten_state: Check for vector append failure." into 15Joshua Colp
2017-11-08Merge "res_stasis: Fix multiple leaks." into 15Joshua Colp
2017-11-08Merge "res_pjsip_outbound_registration: Fix leak on vector add failure." into 15Joshua Colp
2017-11-08Merge "res_pjsip: Avoid crash when contact uri is empty string" into 15Jenkins2
2017-11-07Merge "res_pjsip: Fix leak on error in ast_sip_auth_vector_init." into 15Jenkins2
2017-11-07Merge "stream: Return error from ast_stream_topology_set_stream." into 15Jenkins2
2017-11-07res_pjsip_pubsub: Fix multiple leaks on failure to append vectors.Corey Farrell
Change-Id: I68ece0073ea79667ca41eb10405f516f1d30d482
2017-11-07res_pjsip_history: Fix multiple leaks on vector append failure.Corey Farrell
Change-Id: I41e8d5183ace284095cc721f3b1fb32ade3f940f
2017-11-07res_pjsip_session: Fix multiple leaks.Corey Farrell
* 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