summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-03-01Merge "gitreview: Reorder and add padding."Jenkins2
2018-03-01Merge "res_pjsip_refer.c: Fix attended transfer race condition crash."Jenkins2
2018-02-28pjproject: Add cache_pools debugging option.Richard Mudgett
The pool cache gets in the way of finding use after free errors of memory pool contents. Tools like valgrind and MALLOC_DEBUG don't know when a pool is released because it gets put into the cache instead of being freed. * Added the "cache_pools" option to pjproject.conf. Disabling the option helps track down pool content mismanagement when using valgrind or MALLOC_DEBUG. The cache gets in the way of determining if the pool contents are used after free and who freed it. To disable the pool caching simply disable the cache_pools option in pjproject.conf and restart Asterisk. Sample pjproject.conf setting: [startup] cache_pools=no * Made current users of the caching pool factory initialization and destruction calls call common routines to create and destroy cached pools. ASTERISK-27704 Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828
2018-02-25Merge "Add extended properties to rtp_engine for RTP retransmission support."Jenkins2
2018-02-25gitreview: Reorder and add padding.Corey Farrell
Change-Id: I459dc320a8c9452a01eed6f403d786741587c890
2018-02-25apps/app_amd.c: Fixed total time and silence calculationsMichael Cargile
Between Asterisk 11 and Asterisk 13 there was a significant increase in the number of AST_FRAME_NULL frames being processed by app_amd.c's main loop. Each AST_FRAME_NULL frame was being counted as 100ms towards the total time and silence. This may have been accurate when app_amd.c was orginally added, but it is not in Asterisk 13. As such the total analysis time and silence calculations were way off effectively breaking app_amd.c * Additional debug messages were added * AST_FRAME_NULL are now ignored ASTERISK-27610 Change-Id: I18aca01af98f87c1e168e6ae0d85c136d1df5ea9
2018-02-23ast_coredumper: Minor fixesGeorge Joseph
* Fix --tarball-config so the option doesn't cause an error. * Allow for missing /etc/os-release. * Add a sleep between tarballing the coredump and removing the output directory to allow the filesystem to settle. Change-Id: I73e03b13087978bcc7f6bc9f45753990f82d9d77
2018-02-23Add extended properties to rtp_engine for RTP retransmission support.Ben Ford
A couple of additional properties are needed in rtp_engine to enable support for packet retransmission: AST_RTP_PROPERTY_RETRANS_RECV and AST_RTP_PROPERTY_RETRANS_SEND. These will both be enabled automatically if an endpoint has the webrtc option enabled. While this adds no functionality currently, it will serve as a building block for future changes for RTP retransmission support. For more information, refer to the wiki page: https://wiki.asterisk.org/wiki/display/AST/WebRTC+User+Experience+Improvements Change-Id: Ic598acd042a045f9d10e5bdccb66f4efc9e587cc
2018-02-23core: Fix handling of maximum length lines in config files.Corey Farrell
When a line is the maximum length "\n" is found at sizeof(buf) - 2 since the last character is actually the null terminator. In addition if a line was exactly 8190 plus a multiple of 8192 characters long the config parser would skip the following line. Additionally fix comment in voicemail.conf sample config. It previously stated that emailbody can only contain up to 512 characters which is always wrong. The buffer is normally 8192 characters unless LOW_MEMORY is enabled then it is 512 characters. The updated comment states that the line can be up to 8190 or 510 characters since the line feed and NULL terminator each use a character. ASTERISK-26688 #close Change-Id: I80864a0d40d2e2d8cd79d72af52a8f0a3a99c015
2018-02-23Merge "install_prereq: Update FreeBSD libraries."Jenkins2
2018-02-23Merge "func_audiohookinherit: Remove deprecated module."Joshua Colp
2018-02-23Merge "res_rtp_asterisk: Fix ICE candidate nomination"George Joseph
2018-02-22res_pjsip_refer.c: Fix attended transfer race condition crash.Richard Mudgett
The transferrer's session channel was destroyed by the transferrer's serializer thread in a race condition with the transfer target's serializer thread during an attended transfer. The transfer target's serializer was attempting to clean up a deferred end status on behalf of the transferrer's channel when it should have passed the action to the transferrer's serializer. When the transfer target's serializer lost the race then both threads wind up trying to end the transferrer's session. * Push the ast_sip_session_end_if_deferred() call onto the transferrer's serializer to avoid a race condition that results in a crash. The session_end() function that could be called by ast_sip_session_end_if_deferred() really must be executed by the transferrer's serializer to avoid this kind of crash. ASTERISK-27568 Change-Id: Iacda724e7cb24d7520e49b2fd7e504aa398d7238
2018-02-22Merge "bridge_simple.c: Fix stream topology handling."Jenkins2
2018-02-22install_prereq: Update FreeBSD libraries.Alexander Traud
deleted autoconf gcc libsamplerate sqlite changed binutils to libbfd freetds-devel to freetds gmime2 to gmime26 mysql55-client to mysql57-client added alsa-lib bison bzip2 cclient corosync doxygen libedit flex graphviz libhoard libical libilbc libltdl lua neon newt net-snmp openldap-client openssl patch pkgconf portaudio postgresql10-client python radcli speexdsp subversion uriparser xmlstarlet libzip ASTERISK-27686 Change-Id: Ibe88c9b26e59c30d26cdb313a3ef01c9f37ac80d
2018-02-22func_audiohookinherit: Remove deprecated module.Sean Bright
Change-Id: Id52f719078a65c4b2eee7ab99d761eba6b6aed94
2018-02-21Merge "manager.c: Fix lseek() parameter order."Jenkins2
2018-02-21Merge "AST-2018-006: Properly handle WebSocket frames with 0 length payload."Kevin Harwell
2018-02-21Merge "AST-2018-003: Crash with an invalid SDP fmtp attribute"Kevin Harwell
2018-02-21Merge "AST-2018-002: Crash with an invalid SDP media format description"Kevin Harwell
2018-02-21manager.c: Fix lseek() parameter order.Richard Mudgett
ASTERISK-27659 Change-Id: I04a2705d2cb7df250769967bc59e2b397a49b797
2018-02-21bridge_simple.c: Fix stream topology handling.Richard Mudgett
The handling of stream topologies was not protected by channel locks in simple_bridge_request_stream_topology_change(). * Fixed topology handling to be protected by channel locks where needed in simple_bridge_request_stream_topology_change(). ASTERISK-27692 Change-Id: Ica5d78a6c7ecf4f0b95fb16de28d3889b32c4776
2018-02-21Merge "AST-2018-005: res_pjsip_transport_management: Move to core"George Joseph
2018-02-21Merge "AST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)"George Joseph
2018-02-21Merge "AST-2018-005: Add a check for NULL tdata in ast_sip_failover_request"George Joseph
2018-02-21Merge "AST-2018-001: rtp / channel: Don't allow an unnegotiated format to be ↵Joshua Colp
passed up."
2018-02-21AST-2018-006: Properly handle WebSocket frames with 0 length payload.Sean Bright
In ast_websocket_read() we were not adequately checking that the payload_len was non-zero before passing it to ws_safe_read(). Calling ws_safe_read with a len argument of 0 will result in a busy loop until the underlying socket is closed. ASTERISK-27658 #close Change-Id: I9d59f83bc563f711df1a6197c57de473f6b0663a
2018-02-21AST-2018-003: Crash with an invalid SDP fmtp attributeKevin Harwell
pjproject's fmtp retrieval function failed to catch invalid fmtp attributes. Because of this Asterisk would crash if given an SDP with an invalid fmtp attribute. When retrieving the format this patch now makes sure the fmtp attribute is available. If not available it now returns an error status. ASTERISK-27583 #close Change-Id: I5cebe000ce2d846cae3af33b6d72c416e51caf2f
2018-02-21AST-2018-002: Crash with an invalid SDP media format descriptionKevin Harwell
pjproject's media format parsing algorithm failed to catch invalid values. Because of this Asterisk would crash if given an SDP with a invalid media format description. When parsing the media format description this patch now properly parses the value and returns an error status if it can't successfully parse/convert the value. ASTERISK-27582 #close Change-Id: I883b3a4ef85b6972397f7b56bf46c5779c55fdd6
2018-02-21AST-2018-005: res_pjsip_transport_management: Move to coreGeorge Joseph
Since res_pjsip_transport_management provides several attack mitigation features, its functionality moved to res_pjsip and this module has been removed. This way the features will always be available if res_pjsip is loaded. ASTERISK-27618 Reported By: Sandro Gauci Change-Id: I21a2d33d9dda001452ea040d350d7a075f9acf0d
2018-02-21AST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)George Joseph
pjsip_distributor: authenticate() creates a tdata and uses it to send a challenge or failure response. When pjsip_endpt_send_response2() succeeds, it automatically decrements the tdata ref count but when it fails, it doesn't. Since we weren't checking for a return status, we weren't decrementing the count ourselves on error and were therefore leaking tdatas. res_pjsip_session: session_reinvite_on_rx_request wasn't decrementing the ref count if an error happened while sending a 491 response. pre_session_setup wasn't decrementing the ref count if while sending an error after a pjsip_inv_verify_request failure. res_pjsip: ast_sip_send_response wasn't decrementing the ref count on error. ASTERISK-27618 Reported By: Sandro Gauci Change-Id: Iab33a6c7b6fba96148ed465b690ba8534ac961bf
2018-02-21AST-2018-005: Add a check for NULL tdata in ast_sip_failover_requestGeorge Joseph
It was discovered that there are some corner cases where a pjsip tsx might have no last_tx so calling ast_sip_failover_request with a NULL last_tx as its tdata would cause a crash. ASTERISK-27618 Reported By: Sandro Gauci Change-Id: Ic2b63f6d4ae617c4c19dcdec2a7a6156b54fd15b
2018-02-21AST-2018-004: Restrict the number of Accept headers in a SUBSCRIBE.Joshua Colp
When receiving a SUBSCRIBE request the Accept headers from it are stored locally. This operation has a fixed limit of 32 Accept headers but this limit was not enforced. As a result it was possible for memory outside of the allocated space to get written to resulting in a crash. This change enforces the limit so only 32 Accept headers are processed. ASTERISK-27640 Reported By: Sandro Gauci Change-Id: I99a814b10b554b13a6021ccf41111e5bc95e7301
2018-02-21AST-2018-001: rtp / channel: Don't allow an unnegotiated format to be passed up.Joshua Colp
When an RTP packet is received by an RTP engine it has to map the payload into the Asterisk format. The code was incorrectly checking our own static list for ALL payloads if it couldn't find a negotiated one. This included dynamic payloads. If the payload mapped to a format of a different type (for example receiving a video packet on an audio RTP instance) then the core stream code could cause a crash if a legacy channel driver was in use as no stream would be present. To provide further protection the core stream code will no longer assume that a video or audio frame will always have a stream for legacy channel drivers. If no stream is present the frame is dropped. ASTERISK-27488 Change-Id: I022556f524ad8379ee73f14037040af17ea3316a
2018-02-21Merge "channel.c: Fix typo."Jenkins2
2018-02-20Merge "res_http_websocket: Don't leak memory on read failure"Jenkins2
2018-02-20channel.c: Fix typo.Richard Mudgett
Change-Id: I4eeedf89085697e81c354eb92d546686c67b0b5b
2018-02-20chan_sip: Emit a second ringing event to ensure channel is found.Joshua Colp
When constructing a dialog-info+xml NOTIFY message a ringing channel is found if the state is ringing and further information is placed into the message. Due to the migration to the Stasis message bus this did not always work as expected. This change raises a second ringing event in such a way to guarantee that the event is received by chan_sip and another lookup is done to find the ringing channel. ASTERISK-24488 Change-Id: I547a458fc59721c918cb48be060cbfc3c88bcf9c
2018-02-20Merge "doc/lang/language-criteria.txt: Link to wiki."Jenkins2
2018-02-20Merge "core: Rename sounds_index.c to sounds.c."Jenkins2
2018-02-20Merge "BuildSystem: Allow newer autotools on OpenBSD."Joshua Colp
2018-02-20Merge "config: Fix locking for extconfig reload."Jenkins2
2018-02-20Merge "BuildSystem: Use single bootstrap.sh for Asterisk and menuselect."Joshua Colp
2018-02-20Merge "BuildSystem: Fix a typo related to ./configure --prefix=<path> on ↵Joshua Colp
OpenBSD."
2018-02-20doc/lang/language-criteria.txt: Link to wiki.Corey Farrell
This document is out of date and is superseded by content on the Asterisk wiki. ASTERISK-24386 #close Change-Id: Idbf95b27b096c205251e1bbb560c79224ba81822
2018-02-19Merge "optional_api: Refactor to use vector's and standard allocators."Jenkins2
2018-02-19Merge "rtp_engine: Load format name / mime type in uppercase again."Jenkins2
2018-02-19Merge "install_prereq: Update OpenBSD libraries."Jenkins2
2018-02-19Merge "BuildSystem: Enable IMAP storage on OpenBSD."Jenkins2
2018-02-19Merge "res_pjsip_header_funcs: Various cleanups"Jenkins2