summaryrefslogtreecommitdiff
path: root/main
AgeCommit message (Collapse)Author
2017-11-20ccss: Remove silly usage of RAII_VAR.Corey Farrell
Change-Id: I5ce40035e0a940e4e56f6322c1dcd47fbd509b98
2017-11-20app: Remove silly usage of RAII_VAR.Corey Farrell
Change-Id: Ideb594f7aae134974fb78d5477ba0853b97b8625
2017-11-20aoc: Remove silly usage of RAII_VAR.Corey Farrell
Change-Id: I07907f833b81aeb0128bc9442a2abb52679c7511
2017-11-20abstract_jb: Remove silly usage of RAII_VAR.Corey Farrell
Change-Id: I9d56175369363d1dc735504cf78a3a5577069f49
2017-11-19Build: Fix issues building without SSL.Corey Farrell
* Fix conditional in libasteriskssl. * Use variables produced by configure to link the SSL and uuid libraries into libasteriskpj.so instead of hard-coding them. ASTERISK-27431 Change-Id: I3977931fd3ef8c4e4376349ccddb354eb839b58d
2017-11-18iostream: Fix ast_iostream_printf declaration.Corey Farrell
This adds the printf attribute and changes 'fmt' from 'const void *' to 'const char *'. This resolves a warning from some compiler for vsnprintf needing a literal string for format. Change-Id: I71c33a8262590042ee451e1146760c10bb22fb78
2017-11-17acl: Fix allocation related issues.Corey Farrell
Add checks for allocation errors, cleanup and report failure when they occur. * ast_duplicate_acl_list: Replace log warnings with errors, add missing line-feed. * ast_append_acl: Add missing line-feed to logger message. * ast_append_ha: Avoid ast_strdupa in loop by moving debug message to separate function. * ast_ha_join: Use two separate calls to ast_str_append to avoid using ast_strdupa in a loop. Change-Id: Ia19eaaeb0b139ff7ce7b971c7550e85c8b78ab76
2017-11-17CLI: Create ast_cli_completion_vector.Corey Farrell
This is a rewrite of ast_cli_completion_matches using a vector to build the list. The original function calls the vector version, NULL terminates the vector and extracts the elements array. One change in behavior the results are now sorted and deduplicated. This will solve bugs where some duplicate checking was done before the list was sorted. Change-Id: Iede20c5b4d965fa5ec71fda136ce9425eeb69519
2017-11-17bridge_basic: Ignore answer from transfer target when they've timed out.Joshua Colp
This is a fun one. Given the following attended transfer scenario: 1. Transfer target is called 2. Transferer hangs up 3. Transfer target call attempt reaches timeout 4. Transfer target is told to hang up 5. Transfer target answers before channel is hung up 6. Transferer recall target is called A crash would occur. This is because the transfer target call attempt, despite being told to hang up, would raise a recall target answer before the recall target had been answered. As it had not answered there would be no recall target channel and it would implode. This change makes it so that if the transfer target has been hung up we don't tell the attended transfer code that it has answered. We also clear out the stimulus that the recall target has been answered after telling the transfer target to hang up, in case it was able to raise the information before we told it to hangup. ASTERISK-27361 Change-Id: Ifb8b255a9c4d2c5c1b8ad77bf54f659ed286df99
2017-11-16aoc: Fix memory management issues.Corey Farrell
aoc_publish_blob failed to check for msg allocation error and never released msg. Change-Id: Ib31a9ffb81056a0d496a49d7eec795005a44bcd5
2017-11-16Merge "sorcery: Add ast_sorcery_retrieve_by_prefix()" into 15Jenkins2
2017-11-15audiohook.c: Fix freeing a frame and still using it.Richard Mudgett
Memory corruption happened to the media frame caches when an audio hook freed a frame when it shouldn't. I think the freed frame was because a jitter buffer interpolated a missing frame and the audio hook unconditionally freed it. * Made audiohook.c:audio_audiohook_write_list() not free an interpolated frame if it is the same frame as what was passed into the routine. * Made plc.c:normalise_history() use memmove() instead of memcpy() on a memory block that could overlap. Found by valgrind investigating this issue. ASTERISK-27238 ASTERISK-27412 Change-Id: I548d86894281fc4529aefeb9f161f2131ecc6fde
2017-11-14Merge "core: Fix configuration of remote console socket path." into 15Jenkins2
2017-11-14Merge "core: Add cache_media_frames debugging option." 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-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-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-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-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-07Merge "stream: Return error from ast_stream_topology_set_stream." into 15Jenkins2
2017-11-07Merge "CLI: Remove unused internal command." into 15Joshua Colp
2017-11-07Merge "stasis: Release object if vector append fails." into 15Joshua Colp
2017-11-07Merge "Messaging: Report error on failure to register tech or handler." into 15Joshua Colp
2017-11-07Merge "PBX: Handle errors from AST_VECTOR_APPEND." into 15Joshua Colp
2017-11-07Merge "format_cap: Fix leak on AST_VECTOR_APPEND error." into 15Jenkins2
2017-11-07stream: Return error from ast_stream_topology_set_stream.Corey Farrell
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
2017-11-07Merge "tcptls: Print notice when TLS is enabled but not configured." into 15Jenkins2
2017-11-07Merge "stasis: Remove silly use of RAII_VAR in stasis_forward_all." into 15Joshua Colp
2017-11-07Merge "stasis_channels.c: Remove a very silly RAII_VAR()." into 15Jenkins2
2017-11-07Merge "Fix ast_(v)asprintf() malloc failure usage conditions." into 15Joshua Colp
2017-11-06stasis: Release object if vector append fails.Corey Farrell
Change-Id: I3e5cc669169aab6175ddfaf7486edeaeb4fdcfb1
2017-11-06RTP Engine: Deal with errors returned from AST_VECTOR_REPLACE.Corey Farrell
Check for errors from AST_VECTOR_REPLACE and clean memory if needed. Change-Id: I124d15cc1d645f85a72a1279f623c1993b304b0b
2017-11-06PBX: Handle errors from AST_VECTOR_APPEND.Corey Farrell
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
2017-11-06Messaging: Report error on failure to register tech or handler.Corey Farrell
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
2017-11-06format_cap: Fix leak on AST_VECTOR_APPEND error.Corey Farrell
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
2017-11-06stasis: Remove silly use of RAII_VAR in stasis_forward_all.Corey Farrell
Change-Id: I46de4c968d40144d5b049966304ff66c1469fb65
2017-11-06CLI: Remove unused internal command.Corey Farrell
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
2017-11-06stasis_bridges.c: Fix off-nominal json memory leaks.Richard Mudgett
Change-Id: Ib1181a36b317c86bff1ef2e44a17a0b1c73cfdc8
2017-11-06stasis_channels.c: Remove a very silly RAII_VAR().Richard Mudgett
Change-Id: I28b458b3c1a442c4ef0be7b4986a95ea4149e14f
2017-11-06Merge "dtls: Add support for ephemeral DTLS certificates." into 15Jenkins2
2017-11-06Fix ast_(v)asprintf() malloc failure usage conditions.Richard Mudgett
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
2017-11-06Merge "Stasis/ARI: Fix off-nominal path json memory leaks." into 15Jenkins2
2017-11-06Merge "AOC: Fix AOC-S json memory leak." into 15Joshua Colp
2017-11-06dtls: Add support for ephemeral DTLS certificates.Sean Bright
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
2017-11-06tcptls: Print notice when TLS is enabled but not configured.Alexander Traud
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
2017-11-03Stasis/ARI: Fix off-nominal path json memory leaks.Richard Mudgett
Change-Id: Id569c624c426e3b22a99936473c730592d8b83fb
2017-11-03AOC: Fix AOC-S json memory leak.Richard Mudgett
Change-Id: I3a1d40a41a8a7d00fa4a187de6a343a79155d3ef
2017-11-03Build System: Fix build failure caused by recent CLI improvements.Corey Farrell
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