- Sep 26, 2018
-
-
George Joseph authored
-
- Sep 24, 2018
-
-
Corey Farrell authored
* Use "o*" format specifier for optional fields in ast_json_party_id. * Stop using ast_json_deep_copy on immutable objects, it is now thread safe to just use ast_json_ref. Additional changes to ast_json_pack calls in the vicinity: * Use "O" when an object needs to be bumped. This was previously avoided as it was not thread safe. * Use "o?" and "O?" to replace NULL with ast_json_null(). The "?" is a new feature of ast_json_pack starting with Asterisk 16. Change-Id: I8382d28d7d83ee0ce13334e51ae45dbc0bdaef48
-
George Joseph authored
-
George Joseph authored
-
George Joseph authored
-
George Joseph authored
-
George Joseph authored
app_voicemail wasn't properly cleaning up the stasis cache or the mwi topic pool when the module was unloaded or when a user was deleted as a result of a reload. This resulted in leaks in both areas. * app_voicemail now calls ast_delete_mwi_state_full when it frees a user structure and ast_delete_mwi_state_full in turn now calls the new stasis_topic_pool_delete_topic function to clear the topic from the pool. Change-Id: Ide23144a4a810e7e0faad5a8e988d15947965df8
-
George Joseph authored
-
George Joseph authored
-
George Joseph authored
-
- Sep 21, 2018
-
-
Kevin Harwell authored
When writing an RTCP report to json the code attempts to pack the "ssrc" and "source_ssrc" unsigned integer values as a signed int value type. This of course means if the ssrc's unsigned value is greater than that which can fit into a signed integer value it gets converted to a negative number. Subsequently, the negative value goes out in the json report. This patch now packs the value as a json_int_t, which is the widest integer type available on a given system. This should make it so the value no longer overflows. Note, this was caught by two failing tests hep/rtcp-receiver/ and hep/rtcp-sender. Change-Id: I2af275286ee5e795b79f0c3d450d9e4b28e958b0
-
George Joseph authored
The append_mailbox function wasn't calculating the correct length to pass to ast_alloca and it wasn't handling the case where context might be empty. Found by the Address Sanitizer. Change-Id: I7eb51c7bd18a7a8dbdba261462a95cc69e84f161
-
George Joseph authored
does_id_conflict() was passing a pointer to an int to a callback that expected a pointer to a size_t. Found by the Address Sanitizer. Change-Id: I0ff542067eef63a14a60301654d65d34fe2ad503
-
Corey Farrell authored
ast_rtp_new free'd rtp upon failure, but rtp_engine.c would also call the destroy callback. Remove call to ast_free from ast_rtp_new, leave it to rtp_engine.c to initiate the full cleanup. Add error detection for the ssrc_mapping vector initialization. In rtp_allocate_transport set rtp->s = -1 in the failure path where we close that FD to ensure we don't try closing it twice. ASTERISK-27854 #close Change-Id: Ie02aecbb46228ca804e24b19cec2bb6f7b94e451
-
- Sep 20, 2018
-
-
Sean Bright authored
'rtpchecksums' and 'rtcpinterval' are not being reset to their defaults if they are not present in the updated configuration file. Change-Id: I1162e40199314d46cf3225d5e1271c4c81176670
-
George Joseph authored
There's been a long standing leak when using topic pools. The topics in the pool get cleaned up when the last pool reference is released but you can't remove a topic specifically. If you reloaded app_voicemail for instance, and mailboxes went away, their topics were left in the pool. * Added stasis_topic_pool_delete_topic() so modules can clean up topics from pools. * Registered the topic pool containers so it can be examined from the CLI when AO2_DEBUG is enabled. They'll be named "<topic_pool_name>-pool". Change-Id: Ib7957951ee5c9b9b4482af7b9b4349112d62bc25
-
George Joseph authored
-
Sean Bright authored
The HTTP request processing in res_http_websocket allocates additional space on the stack for various headers received during an Upgrade request. An attacker could send a specially crafted request that causes this code to overflow the stack, resulting in a crash. * No longer allocate memory from the stack in a loop to parse the header values. NOTE: There is a slight API change when using the passed in strings as is. We now require the passed in strings to no longer have leading or trailing whitespace. This isn't a problem as the only callers have already done this before passing the strings to the affected function. ASTERISK-28013 #close Change-Id: Ia564825a8a95e085fd17e658cb777fe1afa8091a
-
Joshua Colp authored
-
hajekd authored
Fixes random asterisk crash on start or reload with TLS phones. ASTERISK-28034 #close Reported-by: David Hajek Change-Id: I2a859f97dc80c348e2fa56e918214ee29521c4ac
-
Joshua Colp authored
-
Joshua Colp authored
This adds a module which registers a CLI command that can set the REMB bitrate value for REMB as it enters or exits Asterisk. This allows you to ignore what Asterisk or a client produces and is useful for demonstrations. This does not generate REMB frames, however, but just modifies them as they flow to or from a channel. Change-Id: Ib089427c46a4a36d645cecfe02406adb38c17bec
-
Joshua Colp authored
-
- Sep 19, 2018
-
-
Richard Mudgett authored
-
Richard Mudgett authored
Stasis message types are global ao2 objects and we make stasis messages and cache entries hold references to them. Since there are currently situations where cache objects are never deleted, the reference count on the types can exceed 100000 and generate a FRACK assertion message. The stasis message cache could conceivably also have that many messages legitimately on large systems. The only down side to not holding the message type ref in the stasis message is it only makes a crash either at shutdown or when manually unloading a busy module slightly more likely. However, this is more exposing a pre-existing stasis shutdown ordering issue than a problem with not holding a message type ref in stasis messages. * Made stasis messages and cache entries no longer hold a ref to the message type. Change-Id: Ibaa28efa8d8ad3836f0c65957192424c7f561707
-
Richard Mudgett authored
ASTERISK-28059 Change-Id: I027472f2753391646dde594a709a75f14422db93
-
Joshua Colp authored
-
Joshua Colp authored
-
George Joseph authored
-
- Sep 18, 2018
-
-
Richard Mudgett authored
* Create the stasis message object without a lock as it is immutable. * Create the stasis message type object without a lock as it is immutable. * Creating the stasis message type could crash if the passed in type name is NULL and REF_DEBUG is enabled. Added missing NULL check when passing the ao2 object tag string. Change-Id: I28763c58bb9f0b427c11971d0103bf94055e7b32
-
Joshua Colp authored
This change brings in PJSIP 2.8, removes all the patches that were merged upstream, and makes a minor change to support a breaking change that was done. ASTERISK-28059 Change-Id: I5097772b11b0f95c3c1f52df6400158666f0a189
-
Florian Floimair authored
In the original commit introducing the feature the column in the alembic script was called 'suppress_q850_reason_header'. In the code however the option is called 'suppress_q850_reason_headers' (trailing 's'). This leads to errors when ARI push configuration is used. Change-Id: Ie84808adbca6fcc9136556e4f5d741adbef5d14f
-
George Joseph authored
app_voicemail was using the stasis cache to build and maintain a list of mailboxes that had subscribers. It then used this list to determine if a mailbox should be polled for new messages if polling was enabled. For this to work, stasis had to cache every subscription and unsubscription to the mailbox which caused a lot of overhead, both cpu and memory related. Since polling is only required when changes are being made to mailboxes outside of app_voicemail and since the number of mailboxes that don't have any subscribers is likely to be very low, all mailboxes are now polled instead of just the ones with subscribers. This paves the way for disabling the caching of stasis subscription change messages. Also fixed cleanup in some of the unit tests that not only left test users in the users list but also caused segfaults if the tests were run more than once. ASTERISK-27121 Change-Id: I5cceb737246949f9782955c64425b8bd25a9e9ee
-
Joshua Colp authored
Given a scenario where a session refresh was done with a removed stream we would always add a removed stream to the outgoing SDP even if one did not already exist. This change makes it so that a removed stream is only placed into the SDP if one already exists. ASTERISK-28047 Change-Id: Ibb97d21cdeb87a8acae0c720861b0ff255708442
-
- Sep 17, 2018
-
-
Corey Farrell authored
This is removed in favor of ./configure --with-jansson-bundled. The install-unpackaged command would only install jansson once, so once installed it would never update, where the bundled copy will be kept up to date. Change-Id: Ideab1f65419608d3795aa608e9da873823cc42d3
-
Sean Bright authored
Change-Id: Id2a916ff9448706090e72ff2c7fb3f5ba24a05df
-
George Joseph authored
-
George Joseph authored
-
George Joseph authored
Change-Id: I30024515e5b00a5044fd39fbff27d818f016b719
-
- Sep 16, 2018
-
-
Sean Bright authored
Change-Id: Ib0a645d6985de5757cc4399ed2524b2d02c4f342
-