Compare commits

...

9 Commits
16.6.0 ... 16.6

Author SHA1 Message Date
Asterisk Development Team
ac87f47b32 Update for 16.6.2 2019-11-21 16:14:58 -05:00
Asterisk Development Team
a4248c671a Update CHANGES and UPGRADE.txt for 16.6.2 2019-11-21 16:13:26 -05:00
Benjamin Keith Ford
a3e0fdeb46 Merge "manager.c: Prevent the Originate action from running the Originate app" into 16.6 2019-11-21 14:44:19 -06:00
George Joseph
8cc49544f8 manager.c: Prevent the Originate action from running the Originate app
If an AMI user without the "system" authorization calls the
Originate AMI command with the Originate application,
the second Originate could run the "System" command.

Action: Originate
Channel: Local/1111
Application: Originate
Data: Local/2222,app,System,touch /tmp/owned

If the "system" authorization isn't set, we now block the
Originate app as well as the System, Exec, etc. apps.

ASTERISK-28580
Reported by: Eliel Sardañons

Change-Id: Ic4c9dedc34c426f03c8c14fce334a71386d8a5fa
(cherry picked from commit 1b9281a5de)
2019-11-21 15:38:17 -05:00
Ben Ford
ad66cbd0be chan_sip.c: Prevent address change on unauthenticated SIP request.
If the name of a peer is known and a SIP request is sent using that
peer's name, the address of the peer will change even if the request
fails the authentication challenge. This means that an endpoint can
be altered and even rendered unusuable, even if it was in a working
state previously. This can only occur when the nat option is set to the
default, or auto_force_rport.

This change checks the result of authentication first to ensure it is
successful before setting the address and the nat option.

ASTERISK-28589 #close

Change-Id: I581c5ed1da60ca89f590bd70872de2b660de02df
(cherry picked from commit c2279540ba)
2019-11-21 15:36:46 -05:00
Asterisk Development Team
987ad61270 Update for 16.6.1 2019-10-16 10:50:40 -05:00
Friendly Automation
574a7bfa97 Merge "res_pjsip_mwi: potential double unref, and potential unwanted double link" into 16.6 2019-10-14 12:54:29 -05:00
George Joseph
e6cc1f5083 pjproject_bundled: Replace earlier reverts with official fixes.
Issues in pjproject 2.9 caused us to revert some of their changes
as a work around.  This introduced another issue where pjproject
wouldn't build with older gcc versions such as that found on
CentOS 6.  This commit replaces the reverts with the official
fixes for the original issues and allows pjproject to be built
on CentOS 6 again.

ASTERISK-28574
Reported-by: Niklas Larsson

Change-Id: I06f8507bea553d1a01b0b8874197d35b9d47ec4c
(cherry picked from commit cb6e0d36ae)
2019-10-11 10:42:05 -05:00
Kevin Harwell
a92fdd25ac res_pjsip_mwi: potential double unref, and potential unwanted double link
When creating an unsolicited MWI aggregate subscription it was possible for
the subscription object to be double unref'ed. This patch removes the explicit
unref as it is not needed since the RAII_VAR will handle it at function end.

Less concerning there was also a bug that could potentially allow the aggregate
subscription object to be added to the unsolicited container twice. This patch
ensures it is added only once.

ASTERISK-28575

Change-Id: I9ccfdb5ea788bc0c3618db183aae235e53c12763
2019-10-10 15:30:52 -05:00
16 changed files with 546 additions and 1970 deletions

View File

@@ -1 +1 @@
16.6.0
16.6.2

View File

@@ -1,3 +1,88 @@
2019-11-21 21:14 +0000 Asterisk Development Team <asteriskteam@digium.com>
* asterisk 16.6.2 Released.
2019-11-21 15:13 +0000 [a4248c671a] Asterisk Development Team <asteriskteam@digium.com>
* Update CHANGES and UPGRADE.txt for 16.6.2
2019-10-24 12:41 +0000 [8cc49544f8] George Joseph <gjoseph@digium.com>
* manager.c: Prevent the Originate action from running the Originate app
If an AMI user without the "system" authorization calls the
Originate AMI command with the Originate application,
the second Originate could run the "System" command.
Action: Originate
Channel: Local/1111
Application: Originate
Data: Local/2222,app,System,touch /tmp/owned
If the "system" authorization isn't set, we now block the
Originate app as well as the System, Exec, etc. apps.
ASTERISK-28580
Reported by: Eliel Sardañons
Change-Id: Ic4c9dedc34c426f03c8c14fce334a71386d8a5fa
(cherry picked from commit 1b9281a5ded62e5d30af2959e5aa33bc5a0fc285)
2019-10-21 14:55 +0000 [ad66cbd0be] Ben Ford <bford@digium.com>
* chan_sip.c: Prevent address change on unauthenticated SIP request.
If the name of a peer is known and a SIP request is sent using that
peer's name, the address of the peer will change even if the request
fails the authentication challenge. This means that an endpoint can
be altered and even rendered unusuable, even if it was in a working
state previously. This can only occur when the nat option is set to the
default, or auto_force_rport.
This change checks the result of authentication first to ensure it is
successful before setting the address and the nat option.
ASTERISK-28589 #close
Change-Id: I581c5ed1da60ca89f590bd70872de2b660de02df
(cherry picked from commit c2279540bade208dad35f7760ebd4a7cc94731fe)
2019-10-16 15:50 +0000 Asterisk Development Team <asteriskteam@digium.com>
* asterisk 16.6.1 Released.
2019-10-09 09:32 +0000 [e6cc1f5083] George Joseph <gjoseph@digium.com>
* pjproject_bundled: Replace earlier reverts with official fixes.
Issues in pjproject 2.9 caused us to revert some of their changes
as a work around. This introduced another issue where pjproject
wouldn't build with older gcc versions such as that found on
CentOS 6. This commit replaces the reverts with the official
fixes for the original issues and allows pjproject to be built
on CentOS 6 again.
ASTERISK-28574
Reported-by: Niklas Larsson
Change-Id: I06f8507bea553d1a01b0b8874197d35b9d47ec4c
(cherry picked from commit cb6e0d36aedfb0b58e167bdc3fc4ec27c9f3ddb7)
2019-10-10 15:30 +0000 [a92fdd25ac] Kevin Harwell <kharwell@digium.com>
* res_pjsip_mwi: potential double unref, and potential unwanted double link
When creating an unsolicited MWI aggregate subscription it was possible for
the subscription object to be double unref'ed. This patch removes the explicit
unref as it is not needed since the RAII_VAR will handle it at function end.
Less concerning there was also a bug that could potentially allow the aggregate
subscription object to be added to the unsolicited container twice. This patch
ensures it is added only once.
ASTERISK-28575
Change-Id: I9ccfdb5ea788bc0c3618db183aae235e53c12763
2019-10-08 17:33 +0000 Asterisk Development Team <asteriskteam@digium.com>
* asterisk 16.6.0 Released.

View File

@@ -18,6 +18,16 @@
===
===========================================================
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 16.6.1 to Asterisk 16.6.2 ------------
------------------------------------------------------------------------------
AMI
------------------
* The AMI Originate action, which optionally takes a dialplan application as
an argument, no longer accepts "Originate" as the application due to
security concerns.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 16.5.0 to Asterisk 16.6.0 ------------
------------------------------------------------------------------------------

View File

@@ -1,178 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-16.6.0</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-16.6.0</h3><h3 align="center">Date: 2019-10-08</h3><h3 align="center">&lt;asteriskteam@digium.com&gt;</h3><hr><h2 align="center">Table of Contents</h2><ol>
<li><a href="#summary">Summary</a></li>
<li><a href="#contributors">Contributors</a></li>
<li><a href="#closed_issues">Closed Issues</a></li>
<li><a href="#commits">Other Changes</a></li>
<li><a href="#diffstat">Diffstat</a></li>
</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p><p>The data in this summary reflects changes that have been made since the previous release, asterisk-16.5.0.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
<tr valign="top"><td width="33%">13 George Joseph <gjoseph@digium.com><br/>8 Sean Bright <sean.bright@gmail.com><br/>5 Kevin Harwell <kharwell@digium.com><br/>5 Tzafrir Cohen <tzafrir.cohen@xorcom.com><br/>4 Joshua Colp <jcolp@digium.com><br/>3 Alexei Gradinari <alex2grad@gmail.com> (license 5691)<br/>3 Asterisk Development Team <asteriskteam@digium.com><br/>3 Igor Goncharovsky <igor.goncharovsky@gmail.com><br/>2 Frederic LE FOLL <frederic.lefoll@c-s.fr><br/>2 Dan Cropp <dan@amtelco.com><br/>1 Rodrigo Ramírez Norambuena <a@rodrigoramirez.com><br/>1 Walter Doekes <walter+asterisk@wjd.nu><br/>1 Leonid Fainshtein <leonid.fainshtein@xorcom.com><br/>1 Torrey Searle <torrey@voxbone.com><br/>1 Chris-Savinovich <csavinovich@digium.com><br/>1 Guido Falsi <madpilot@FreeBSD.org><br/>1 sungtae kim <pchero21@gmail.com><br/>1 Stas Kobzar <stas@modulis.ca><br/></td><td width="33%">1 tests/test_utils.c.<br/></td><td width="33%">2 Alexei Gradinari <alex2grad@gmail.com><br/>2 Joshua C. Colp <jcolp@digium.com><br/>2 Dan Cropp <dan@amtelco.com><br/>2 Frederic LE FOLL <frederic.lefoll@c-s.fr><br/>2 Dan Cropp<br/>2 Ruddy G <plugworld@micnes.com><br/>1 Walter Doekes <walter+asterisk@wjd.nu><br/>1 Byron Clark <bclark@getjive.com><br/>1 Jonas Swiatek <jonas@telzio.com><br/>1 Salah Ahmed <txrubel@gmail.com><br/>1 Guido Falsi <madpilot@freebsd.org><br/>1 Cyril Ramière <cyril.ramiere@ino.global><br/>1 Stas Kobzar <stas@modulis.ca><br/>1 Kilburn <kilburna@gmail.com><br/>1 Ian Jones <tech@iljones.net><br/>1 Alexander Traud <pabstraud@compuserve.com><br/>1 Dennis <dennis.buteyn@xorcom.com><br/>1 Mark <mark@wrapped.cx><br/>1 Chris Savinovich <csavinovich@digium.com><br/>1 Alexander Traud<br/>1 Gregory Massel <greg@csurf.co.za><br/>1 Torrey Searle <tsearle@gmail.com><br/>1 dennis <dennis@arena1.com><br/></td></tr>
</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Security</h3><h4>Category: Resources/res_pjsip_t38</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28495">ASTERISK-28495</a>: res_pjsip_t38: 200 OK with SDP answer with declined stream causes crash<br/>Reported by: Alexei Gradinari<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=965df3c228d49bcde3503e0482f3c831dcbf6c77">[965df3c228]</a> Alexei Gradinari -- AST-2019-004 - res_pjsip_t38.c: Add NULL checks before using session media</li>
</ul><br><h3>Bug</h3><h4>Category: .Release/Targets</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28488">ASTERISK-28488</a>: pjsip mwi: n+1 sip notify's sent on re-register<br/>Reported by: Chris Savinovich<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7db5f5df6ae6b807849277e169624a70e45a2077">[7db5f5df6a]</a> Kevin Harwell -- res_pjsip_mwi: add better handling of solicited vs unsolicited subscriptions</li>
</ul><br><h4>Category: Applications/app_chanisavail</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28527">ASTERISK-28527</a>: ChanIsAvail() creates a CDR if unanswered=yes is set in cdr.conf<br/>Reported by: Frederic LE FOLL<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c8cf3ad389ffbcf96e3079fc776a27da737f79b7">[c8cf3ad389]</a> Frederic LE FOLL -- ChanIsAvail() generates a CDR when unanswered=yes in cdr.conf.</li>
</ul><br><h4>Category: Applications/app_transfer</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26968">ASTERISK-26968</a>: chan_pjsip: Transfer() does not result in TRANSFERSTATUS reflecting SIP response to transfer<br/>Reported by: Dan Cropp<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f4896703b95b8d34301f4a919b3e488a7f042bb2">[f4896703b9]</a> Dan Cropp -- chan_pjsip: Transmit REFER waits for the REFER result setting TRANSFERSTATUS</li>
</ul><br><h4>Category: Applications/app_voicemail/IMAP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28505">ASTERISK-28505</a>: app_voicemail/IMAP: segfault in leave_voicemail because not checking mailstream<br/>Reported by: Alexei Gradinari<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ff180a5bfc3090485ee7b2746ce7bee58e754746">[ff180a5bfc]</a> Alexei Gradinari -- app_voicemail/IMAP: check mailstream not NULL in leave_voicemail</li>
</ul><br><h4>Category: Channels/chan_dahdi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28536">ASTERISK-28536</a>: Asterisk release candidates fail to build on FreeBSD<br/>Reported by: Guido Falsi<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8931669b37d4edc9a27de42eb3529b13326bec78">[8931669b37]</a> Guido Falsi -- chan_dahdi: Fix build with clang/llvm</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28525">ASTERISK-28525</a>: chan_dahdi: set CHANNEL(hangupsource) when a PRI channel hangs up<br/>Reported by: Frederic LE FOLL<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c6b17b521231dde9da890d95ee705c93953bab8c">[c6b17b5212]</a> Frederic LE FOLL -- chan_dahdi: set CHANNEL(hangupsource) when a PRI channel hangs up</li>
</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28538">ASTERISK-28538</a>: chan_pjsip: Deadlock on fax detection<br/>Reported by: Joshua C. Colp<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=deb45228c817e6db71f75d7af65ffe1f91e3e9fb">[deb45228c8]</a> Joshua Colp -- chan_pjsip: Relock correct channel during "fax" redirect.</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26968">ASTERISK-26968</a>: chan_pjsip: Transfer() does not result in TRANSFERSTATUS reflecting SIP response to transfer<br/>Reported by: Dan Cropp<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f4896703b95b8d34301f4a919b3e488a7f042bb2">[f4896703b9]</a> Dan Cropp -- chan_pjsip: Transmit REFER waits for the REFER result setting TRANSFERSTATUS</li>
</ul><br><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28282">ASTERISK-28282</a>: AST_SCHED_REPLACE_UNREF causes wait-on-self deadlocks (in chan_sip)<br/>Reported by: Walter Doekes<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=64d25d36fb4c1cdba3e8b4791462c4805715aee8">[64d25d36fb]</a> Walter Doekes -- sched: Don't allow ast_sched_del to deadlock ast_sched_runq from same thread</li>
</ul><br><h4>Category: Channels/chan_unistim</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25592">ASTERISK-25592</a>: chan_unistim: Clang Warning: variable sized type not at end of a struct<br/>Reported by: Alexander Traud<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=92261d60c876cb0be63eb75390525bd1732a5db8">[92261d60c8]</a> Igor Goncharovsky -- chan_unistim: Fix clang warning: variable sized type not at end of a struct</li>
</ul><br><h4>Category: Codecs/codec_resample</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28511">ASTERISK-28511</a>: codec_resample: Bad sound quality when up sampling from SLIN16 to SLIN32<br/>Reported by: Ruddy G<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bf527810efba18baabf84fcd931a2cb9fc65d707">[bf527810ef]</a> Sean Bright -- codec_resample: Ensure OUTSIDE_SPEEX is defined when necessary</li>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cdbb9800e311e4d9ca98215ba14348fe5d9e224e">[cdbb9800e3]</a> Sean Bright -- codec_resample: Upgrade speex_resample to fix up-sampling bug</li>
</ul><br><h4>Category: Core/BuildSystem</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28487">ASTERISK-28487</a>: compile menuselect on gentoo<br/>Reported by: Kilburn<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8399211eaf55fa27b845ff089fbeac5f3cf535ef">[8399211eaf]</a> Sean Bright -- menuselect: Fix curses build on Gentoo Linux</li>
</ul><br><h4>Category: Core/Channels</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28499">ASTERISK-28499</a>: translate: Crash when frame does not have a "src" field set<br/>Reported by: Gregory Massel<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2691ee7e106ee537e6347c4e69a3ef7e417667e6">[2691ee7e10]</a> Joshua Colp -- AST-2019-005 - translate: Don't assume all frames will have a src.</li>
</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28498">ASTERISK-28498</a>: cel / cdr: Event times may be incorrect<br/>Reported by: Joshua C. Colp<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6350f4e278569c084f519eff3302a5f5eebec355">[6350f4e278]</a> Joshua Colp -- cdr / cel: Use event time at event creation instead of processing.</li>
</ul><br><h4>Category: Core/RTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28480">ASTERISK-28480</a>: json integer overflow in ssrc and timestamp<br/>Reported by: Salah Ahmed<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6bb14150c4b19407ad2d166ee6f0bc94415e9d21">[6bb14150c4]</a> Kevin Harwell -- various modules: json integer overflow</li>
</ul><br><h4>Category: Core/UDPTL</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28483">ASTERISK-28483</a>: packet lost on UDPTL wrap around<br/>Reported by: Torrey Searle<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=83390327b2036b4e4d34c4e94fcbed0b057a8b03">[83390327b2]</a> Torrey Searle -- main/udptl.c: correctly handle udptl sequence wrap around</li>
</ul><br><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28523">ASTERISK-28523</a>: Asterisk 16.5.0 Memory leak<br/>Reported by: Cyril Ramière<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6b072ab08cb067b5ecba32b94a541e2f827a2b78">[6b072ab08c]</a> Kevin Harwell -- res_sorcery_memory_cache: stale item update leak</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28472">ASTERISK-28472</a>: Asterisk occasionally passes a NULL as srtp->session to srtp_protect/unprotect causing SEGV<br/>Reported by: Jonas Swiatek<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d4766a82a28cce3c068fcb45cbb34fba0328b28c">[d4766a82a2]</a> Kevin Harwell -- srtp: Fix possible race condition, and add NULL checks</li>
</ul><br><h4>Category: Resources/res_config_sqlite3</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28477">ASTERISK-28477</a>: Crash when not specifying "dbfile" in res_config_sqlite3.conf<br/>Reported by: Dennis<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=28654308efcc677f61534c6e9d883db3fb396eca">[28654308ef]</a> Sean Bright -- res_config_sqlite3: Only join threads that we started</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28478">ASTERISK-28478</a>: Crash performing "core reload" with modified res_config_sqlite3.conf<br/>Reported by: Dennis<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=28654308efcc677f61534c6e9d883db3fb396eca">[28654308ef]</a> Sean Bright -- res_config_sqlite3: Only join threads that we started</li>
</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28521">ASTERISK-28521</a>: pjsip: Memory Leak<br/>Reported by: Mark<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2b75c4fc514c3a6e2fcb5d89a47ea552764d5992">[2b75c4fc51]</a> George Joseph -- pjproject_bundled: Revert pjproject 2.9 commits causing leaks</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28228">ASTERISK-28228</a>: res_pjsip: pjsip show contacts prints double entries<br/>Reported by: Ian Jones<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c2b135729caad2c08526fabeca80f7e519aca2a2">[c2b135729c]</a> Joshua Colp -- res_pjsip: Fix multiple of the same contact in "pjsip show contacts".</li>
</ul><br><h4>Category: Resources/res_pjsip_outbound_registration</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28521">ASTERISK-28521</a>: pjsip: Memory Leak<br/>Reported by: Mark<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2b75c4fc514c3a6e2fcb5d89a47ea552764d5992">[2b75c4fc51]</a> George Joseph -- pjproject_bundled: Revert pjproject 2.9 commits causing leaks</li>
</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28509">ASTERISK-28509</a>: PJSIP cnonce generated on Linux contains 36 characters, NEC only supports up to 32 characters<br/>Reported by: Dan Cropp<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c8cc530726f5f81c99bc4181c8b8c39a1842913f">[c8cc530726]</a> Dan Cropp -- pjproject: Configurable setting for cnonce to include hyphens or not</li>
</ul><br><h3>New Feature</h3><h4>Category: Resources/res_musiconhold</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-17808">ASTERISK-17808</a>: [patch] Unregister a realtime moh class<br/>Reported by: Byron Clark<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b478f46d59114733f716c41356585af54c10c1f8">[b478f46d59]</a> sungtae kim -- res_musiconhold: Added unregister realtime moh class</li>
</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28489">ASTERISK-28489</a>: Channel variable SIPFROMDOMAIN for chan_pjsip to setup From header URI domain<br/>Reported by: Stas Kobzar<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fb984eda40f9753a5f98b59044386664129bbb52">[fb984eda40]</a> Stas Kobzar -- res_pjsip: Channel variable SIPFROMDOMAIN</li>
</ul><br><hr><a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all changes that went into this release that did not reference a JIRA issue.</p><table width="100%" border="1">
<tr><th>Revision</th><th>Author</th><th>Summary</th></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e70a65eb55d2e183ca15c9e0d9b5a34897f33852">e70a65eb55</a></td><td>Asterisk Development Team</td><td>Update for 16.6.0-rc2</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=951d914aab0e0cae65365fb3cf55b30b4262b53f">951d914aab</a></td><td>Asterisk Development Team</td><td>Update for 16.6.0-rc1</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=688908fe7a6d26cfd3ef3b7213986103b749dd4e">688908fe7a</a></td><td>Asterisk Development Team</td><td>Update CHANGES and UPGRADE.txt for 16.6.0</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d566314e38d47313af73dc5150c259323e930528">d566314e38</a></td><td>George Joseph</td><td>ARI: External Media</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a321225fa443d1fb823ad992d72c2ef825df67ef">a321225fa4</a></td><td>Chris-Savinovich</td><td>test_utils.c: Skip test adsi_loaded_test if module not loaded.</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=78d00c277cebad260577024a59227ef7fc0920e7">78d00c277c</a></td><td>Igor Goncharovsky</td><td>chan_unistim: Fix code, causing all incoming DTMF sent back to asterisk</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=821b7561f85b5fcbc337b4dfcec85709812c56e3">821b7561f8</a></td><td>Igor Goncharovsky</td><td>chan_unistim: Fix RTP port byte order for big-endian arch</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=aaaa1695ca76b659a9131ceaa86ae3fa4fb3aca0">aaaa1695ca</a></td><td>Alexei Gradinari</td><td>Fix misname 'res_external_mwi' to 'res_mwi_external' in comments.</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c00a010fe8e4cac63f09406a8c7ff97166f5f773">c00a010fe8</a></td><td>George Joseph</td><td>chan_rtp: Accept hostname as well as ip address as destination</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6407ccd2d9887754d51b38de6d635e42fd775611">6407ccd2d9</a></td><td>George Joseph</td><td>dns_core: Create new API ast_dns_resolve_ipv6_and_ipv4</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f82d0b74fd870b94609c196c11bdc9c4d5b9663b">f82d0b74fd</a></td><td>George Joseph</td><td>res_ari.c: Prefer exact handler match over wildcard</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=51fd43206ba2655233f660f92da2424ffa2ab874">51fd43206b</a></td><td>Sean Bright</td><td>audiohook.c: Substitute silence for unavailable audio frames</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=92066b87469080831c678d16305f4043b1e26861">92066b8746</a></td><td>George Joseph</td><td>CI: Escape backslashes in printenv/sort/tr</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=db9684ad1e2a74329da744aede8bd8c5f293f41c">db9684ad1e</a></td><td>George Joseph</td><td>CI: Add "throttle" label and "skip_gate" capability</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2641081caa7f1c9755a782509d5a46a1c59e6b3a">2641081caa</a></td><td>George Joseph</td><td>CI: Make node labels job-specific</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=97183769028a8791f31d441e3495bb444bcc22a1">9718376902</a></td><td>Sean Bright</td><td>res_musiconhold: Use a vector instead of custom array allocation</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0ebfc4a19ddd6d2d53840ca18d7cd53a5a572b81">0ebfc4a19d</a></td><td>Sean Bright</td><td>manager: Send fewer packets</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d6af1acb8c21eb1552663e5c335aea93373e7fed">d6af1acb8c</a></td><td>Sean Bright</td><td>res_musiconhold: Use ast_pipe_nonblock() wrapper</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=05cf9c99128cff8a83711624f2e78c049957b54e">05cf9c9912</a></td><td>George Joseph</td><td>loader.c: Fix possible SEGV when a module fails to register</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=06780d2bc4c8304de2709e5ceb32f011559878e4">06780d2bc4</a></td><td>George Joseph</td><td>CI: Don't enable non-core modules in Certified branches</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3814faf8486214d57d9ffad9cf8e8a39254772c5">3814faf848</a></td><td>Leonid Fainshtein</td><td>openr2(6/6): Set hangup cause</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=06515707dff10a8016723a81bc6132ced28f21cb">06515707df</a></td><td>Tzafrir Cohen</td><td>openr2(5/6): added cli command -- mfcr2 destroy link &lt;index&gt;</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=93a093f6c4e01357ed598f426bb0233e9f9f9c4d">93a093f6c4</a></td><td>Tzafrir Cohen</td><td>openr2(4/6): added new cli command -- mfcr2 show links</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a45cfefb77e7f58254d48f65f61b57d457e66102">a45cfefb77</a></td><td>Tzafrir Cohen</td><td>openr2(3/6): Convert r2links to standard Asterisk AST_LIST*</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ec6e88592a94ac0e16a8c313df0584e052fe3dce">ec6e88592a</a></td><td>Tzafrir Cohen</td><td>openr2(2/6): Stop polling channels when DAHDI returns -ENODEV (e.g: plug-out)</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7b6df814a6dc731acc5f3acc8f4e730425256af3">7b6df814a6</a></td><td>Tzafrir Cohen</td><td>openr2(1/6): bugfix in configuration saving</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=356f4256cc53d5fa6d9ced1b92f0f2f80e1ae166">356f4256cc</a></td><td>George Joseph</td><td>CI: Add cleanWs to cleanup steps in jenkinsfiles</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9d694692032b85e7360c625e8240dbae4951d53c">9d69469203</a></td><td>Rodrigo Ramírez Norambuena</td><td>README.md: Update year</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c86c0973ff61f8379a729076c6bbb747384d41cf">c86c0973ff</a></td><td>George Joseph</td><td>CI: Add install-headers to the install make targets</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f62d9013c10cf5c677a61926696502639abc2fe0">f62d9013c1</a></td><td>George Joseph</td><td>Build: Add separate header install/uninstall targets</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=88ea395c333acea93791a21b948f361408e2f5a9">88ea395c33</a></td><td>Kevin Harwell</td><td>manager: Log AMI actions</td></tr>
</table><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>asterisk-16.5.0-summary.html | 105 -
asterisk-16.5.0-summary.txt | 302 --
b/.version | 2
b/CHANGES | 49
b/ChangeLog | 810 +++++++
b/Makefile | 30
b/README.md | 2
b/UPGRADE.txt | 14
b/apps/app_agent_pool.c | 4
b/apps/app_chanisavail.c | 3
b/apps/app_mixmonitor.c | 13
b/apps/app_queue.c | 12
b/apps/app_voicemail.c | 2
b/asterisk-16.6.0-rc2-summary.html | 26
b/asterisk-16.6.0-rc2-summary.txt | 118 +
b/channels/chan_dahdi.c | 427 +++-
b/channels/chan_iax2.c | 8
b/channels/chan_pjsip.c | 179 +
b/channels/chan_rtp.c | 19
b/channels/chan_unistim.c | 174 -
b/channels/sig_pri.c | 17
b/codecs/Makefile | 3
b/codecs/speex/arch.h | 13
b/codecs/speex/fixed_generic.h | 4
b/codecs/speex/resample.c | 332 +--
b/codecs/speex/speex_resampler.h | 4
b/funcs/func_talkdetect.c | 2
b/include/asterisk/audiohook.h | 2
b/include/asterisk/cel.h | 22
b/include/asterisk/dns_core.h | 22
b/include/asterisk/sched.h | 16
b/main/aoc.c | 8
b/main/audiohook.c | 11
b/main/ccss.c | 4
b/main/cdr.c | 52
b/main/cel.c | 82
b/main/channel.c | 4
b/main/core_local.c | 6
b/main/dns_core.c | 72
b/main/loader.c | 2
b/main/manager.c | 105 -
b/main/rtp_engine.c | 27
b/main/sched.c | 30
b/main/stasis_channels.c | 4
b/main/translate.c | 2
b/main/udptl.c | 18
b/menuselect/Makefile | 8
b/menuselect/autoconfig.h.in | 3
b/menuselect/configure | 334 +++
b/menuselect/configure.ac | 12
b/menuselect/makeopts.in | 3
b/res/ari/ari_model_validators.c | 56
b/res/ari/ari_model_validators.h | 22
b/res/ari/resource_channels.c | 192 +
b/res/ari/resource_channels.h | 42
b/res/res_ari.c | 23
b/res/res_ari_channels.c | 135 +
b/res/res_config_sqlite3.c | 6
b/res/res_musiconhold.c | 238 +-
b/res/res_pjsip.c | 4
b/res/res_pjsip/location.c | 6
b/res/res_pjsip_mwi.c | 289 ++
b/res/res_pjsip_sdp_rtp.c | 2
b/res/res_pjsip_session.c | 12
b/res/res_pjsip_t38.c | 72
b/res/res_sorcery_memory_cache.c | 1
b/res/res_srtp.c | 33
b/rest-api/api-docs/channels.json | 146 +
b/tests/CI/buildAsterisk.sh | 10
b/tests/CI/gates.jenkinsfile | 30
b/tests/CI/installAsterisk.sh | 2
b/tests/CI/periodics-daily.jenkinsfile | 9
b/tests/CI/ref_debug.jenkinsfile | 15
b/tests/CI/unittests.jenkinsfile | 9
b/tests/test_utils.c | 5
b/third-party/pjproject/patches/0020-patch_cnonce_only_digits_option.patch | 53
b/third-party/pjproject/patches/0030-Revert-Misc-re-2147-Fixed-warnings-in-SSL-socket-red.patch | 60
b/third-party/pjproject/patches/0031-Revert-Fixed-2204-Add-OpenSSL-remote-certificate-cha.patch | 84
b/third-party/pjproject/patches/0032-Revert-Re-2147-misc-Fix-failed-pjsip-test-transport_.patch | 64
b/third-party/pjproject/patches/0033-Revert-Close-1019-Support-for-multiple-listeners.patch | 1044 ++++++++++
80 files changed, 5101 insertions(+), 1086 deletions(-)</pre><br></html>

View File

@@ -1,473 +0,0 @@
Release Summary
asterisk-16.6.0
Date: 2019-10-08
<asteriskteam@digium.com>
----------------------------------------------------------------------
Table of Contents
1. Summary
2. Contributors
3. Closed Issues
4. Other Changes
5. Diffstat
----------------------------------------------------------------------
Summary
[Back to Top]
This release is a point release of an existing major version. The changes
included were made to address problems that have been identified in this
release series, or are minor, backwards compatible new features or
improvements. Users should be able to safely upgrade to this version if
this release series is already in use. Users considering upgrading from a
previous version are strongly encouraged to review the UPGRADE.txt
document as well as the CHANGES document for information about upgrading
to this release series.
The data in this summary reflects changes that have been made since the
previous release, asterisk-16.5.0.
----------------------------------------------------------------------
Contributors
[Back to Top]
This table lists the people who have submitted code, those that have
tested patches, as well as those that reported issues on the issue tracker
that were resolved in this release. For coders, the number is how many of
their patches (of any size) were committed into this release. For testers,
the number is the number of times their name was listed as assisting with
testing a patch. Finally, for reporters, the number is the number of
issues that they reported that were affected by commits that went into
this release.
Coders Testers Reporters
13 George Joseph 1 tests/test_utils.c. 2 Alexei Gradinari
8 Sean Bright 2 Joshua C. Colp
5 Kevin Harwell 2 Dan Cropp
5 Tzafrir Cohen 2 Frederic LE FOLL
4 Joshua Colp 2 Dan Cropp
3 Alexei Gradinari (license 5691) 2 Ruddy G
3 Asterisk Development Team 1 Walter Doekes
3 Igor Goncharovsky 1 Byron Clark
2 Frederic LE FOLL 1 Jonas Swiatek
2 Dan Cropp 1 Salah Ahmed
1 Rodrigo RamÃrez Norambuena 1 Guido Falsi
1 Walter Doekes 1 Cyril Ramière
1 Leonid Fainshtein 1 Stas Kobzar
1 Torrey Searle 1 Kilburn
1 Chris-Savinovich 1 Ian Jones
1 Guido Falsi 1 Alexander Traud
1 sungtae kim 1 Dennis
1 Stas Kobzar 1 Mark
1 Chris Savinovich
1 Alexander Traud
1 Gregory Massel
1 Torrey Searle
1 dennis
----------------------------------------------------------------------
Closed Issues
[Back to Top]
This is a list of all issues from the issue tracker that were closed by
changes that went into this release.
Security
Category: Resources/res_pjsip_t38
ASTERISK-28495: res_pjsip_t38: 200 OK with SDP answer with declined stream
causes crash
Reported by: Alexei Gradinari
* [965df3c228] Alexei Gradinari -- AST-2019-004 - res_pjsip_t38.c: Add
NULL checks before using session media
Bug
Category: .Release/Targets
ASTERISK-28488: pjsip mwi: n+1 sip notify's sent on re-register
Reported by: Chris Savinovich
* [7db5f5df6a] Kevin Harwell -- res_pjsip_mwi: add better handling of
solicited vs unsolicited subscriptions
Category: Applications/app_chanisavail
ASTERISK-28527: ChanIsAvail() creates a CDR if unanswered=yes is set in
cdr.conf
Reported by: Frederic LE FOLL
* [c8cf3ad389] Frederic LE FOLL -- ChanIsAvail() generates a CDR when
unanswered=yes in cdr.conf.
Category: Applications/app_transfer
ASTERISK-26968: chan_pjsip: Transfer() does not result in TRANSFERSTATUS
reflecting SIP response to transfer
Reported by: Dan Cropp
* [f4896703b9] Dan Cropp -- chan_pjsip: Transmit REFER waits for the
REFER result setting TRANSFERSTATUS
Category: Applications/app_voicemail/IMAP
ASTERISK-28505: app_voicemail/IMAP: segfault in leave_voicemail because
not checking mailstream
Reported by: Alexei Gradinari
* [ff180a5bfc] Alexei Gradinari -- app_voicemail/IMAP: check mailstream
not NULL in leave_voicemail
Category: Channels/chan_dahdi
ASTERISK-28536: Asterisk release candidates fail to build on FreeBSD
Reported by: Guido Falsi
* [8931669b37] Guido Falsi -- chan_dahdi: Fix build with clang/llvm
ASTERISK-28525: chan_dahdi: set CHANNEL(hangupsource) when a PRI channel
hangs up
Reported by: Frederic LE FOLL
* [c6b17b5212] Frederic LE FOLL -- chan_dahdi: set CHANNEL(hangupsource)
when a PRI channel hangs up
Category: Channels/chan_pjsip
ASTERISK-28538: chan_pjsip: Deadlock on fax detection
Reported by: Joshua C. Colp
* [deb45228c8] Joshua Colp -- chan_pjsip: Relock correct channel during
"fax" redirect.
ASTERISK-26968: chan_pjsip: Transfer() does not result in TRANSFERSTATUS
reflecting SIP response to transfer
Reported by: Dan Cropp
* [f4896703b9] Dan Cropp -- chan_pjsip: Transmit REFER waits for the
REFER result setting TRANSFERSTATUS
Category: Channels/chan_sip/General
ASTERISK-28282: AST_SCHED_REPLACE_UNREF causes wait-on-self deadlocks (in
chan_sip)
Reported by: Walter Doekes
* [64d25d36fb] Walter Doekes -- sched: Don't allow ast_sched_del to
deadlock ast_sched_runq from same thread
Category: Channels/chan_unistim
ASTERISK-25592: chan_unistim: Clang Warning: variable sized type not at
end of a struct
Reported by: Alexander Traud
* [92261d60c8] Igor Goncharovsky -- chan_unistim: Fix clang warning:
variable sized type not at end of a struct
Category: Codecs/codec_resample
ASTERISK-28511: codec_resample: Bad sound quality when up sampling from
SLIN16 to SLIN32
Reported by: Ruddy G
* [bf527810ef] Sean Bright -- codec_resample: Ensure OUTSIDE_SPEEX is
defined when necessary
* [cdbb9800e3] Sean Bright -- codec_resample: Upgrade speex_resample to
fix up-sampling bug
Category: Core/BuildSystem
ASTERISK-28487: compile menuselect on gentoo
Reported by: Kilburn
* [8399211eaf] Sean Bright -- menuselect: Fix curses build on Gentoo
Linux
Category: Core/Channels
ASTERISK-28499: translate: Crash when frame does not have a "src" field
set
Reported by: Gregory Massel
* [2691ee7e10] Joshua Colp -- AST-2019-005 - translate: Don't assume all
frames will have a src.
Category: Core/General
ASTERISK-28498: cel / cdr: Event times may be incorrect
Reported by: Joshua C. Colp
* [6350f4e278] Joshua Colp -- cdr / cel: Use event time at event
creation instead of processing.
Category: Core/RTP
ASTERISK-28480: json integer overflow in ssrc and timestamp
Reported by: Salah Ahmed
* [6bb14150c4] Kevin Harwell -- various modules: json integer overflow
Category: Core/UDPTL
ASTERISK-28483: packet lost on UDPTL wrap around
Reported by: Torrey Searle
* [83390327b2] Torrey Searle -- main/udptl.c: correctly handle udptl
sequence wrap around
Category: General
ASTERISK-28523: Asterisk 16.5.0 Memory leak
Reported by: Cyril Ramière
* [6b072ab08c] Kevin Harwell -- res_sorcery_memory_cache: stale item
update leak
ASTERISK-28472: Asterisk occasionally passes a NULL as srtp->session to
srtp_protect/unprotect causing SEGV
Reported by: Jonas Swiatek
* [d4766a82a2] Kevin Harwell -- srtp: Fix possible race condition, and
add NULL checks
Category: Resources/res_config_sqlite3
ASTERISK-28477: Crash when not specifying "dbfile" in
res_config_sqlite3.conf
Reported by: Dennis
* [28654308ef] Sean Bright -- res_config_sqlite3: Only join threads that
we started
ASTERISK-28478: Crash performing "core reload" with modified
res_config_sqlite3.conf
Reported by: Dennis
* [28654308ef] Sean Bright -- res_config_sqlite3: Only join threads that
we started
Category: Resources/res_pjsip
ASTERISK-28521: pjsip: Memory Leak
Reported by: Mark
* [2b75c4fc51] George Joseph -- pjproject_bundled: Revert pjproject 2.9
commits causing leaks
ASTERISK-28228: res_pjsip: pjsip show contacts prints double entries
Reported by: Ian Jones
* [c2b135729c] Joshua Colp -- res_pjsip: Fix multiple of the same
contact in "pjsip show contacts".
Category: Resources/res_pjsip_outbound_registration
ASTERISK-28521: pjsip: Memory Leak
Reported by: Mark
* [2b75c4fc51] George Joseph -- pjproject_bundled: Revert pjproject 2.9
commits causing leaks
Category: pjproject/pjsip
ASTERISK-28509: PJSIP cnonce generated on Linux contains 36 characters,
NEC only supports up to 32 characters
Reported by: Dan Cropp
* [c8cc530726] Dan Cropp -- pjproject: Configurable setting for cnonce
to include hyphens or not
New Feature
Category: Resources/res_musiconhold
ASTERISK-17808: [patch] Unregister a realtime moh class
Reported by: Byron Clark
* [b478f46d59] sungtae kim -- res_musiconhold: Added unregister realtime
moh class
Category: pjproject/pjsip
ASTERISK-28489: Channel variable SIPFROMDOMAIN for chan_pjsip to setup
From header URI domain
Reported by: Stas Kobzar
* [fb984eda40] Stas Kobzar -- res_pjsip: Channel variable SIPFROMDOMAIN
----------------------------------------------------------------------
Commits Not Associated with an Issue
[Back to Top]
This is a list of all changes that went into this release that did not
reference a JIRA issue.
+------------------------------------------------------------------------+
| Revision | Author | Summary |
|------------+----------------------+------------------------------------|
| e70a65eb55 | Asterisk Development | Update for 16.6.0-rc2 |
| | Team | |
|------------+----------------------+------------------------------------|
| 951d914aab | Asterisk Development | Update for 16.6.0-rc1 |
| | Team | |
|------------+----------------------+------------------------------------|
| 688908fe7a | Asterisk Development | Update CHANGES and UPGRADE.txt for |
| | Team | 16.6.0 |
|------------+----------------------+------------------------------------|
| d566314e38 | George Joseph | ARI: External Media |
|------------+----------------------+------------------------------------|
| | | test_utils.c: Skip test |
| a321225fa4 | Chris-Savinovich | adsi_loaded_test if module not |
| | | loaded. |
|------------+----------------------+------------------------------------|
| | | chan_unistim: Fix code, causing |
| 78d00c277c | Igor Goncharovsky | all incoming DTMF sent back to |
| | | asterisk |
|------------+----------------------+------------------------------------|
| 821b7561f8 | Igor Goncharovsky | chan_unistim: Fix RTP port byte |
| | | order for big-endian arch |
|------------+----------------------+------------------------------------|
| aaaa1695ca | Alexei Gradinari | Fix misname 'res_external_mwi' to |
| | | 'res_mwi_external' in comments. |
|------------+----------------------+------------------------------------|
| c00a010fe8 | George Joseph | chan_rtp: Accept hostname as well |
| | | as ip address as destination |
|------------+----------------------+------------------------------------|
| 6407ccd2d9 | George Joseph | dns_core: Create new API |
| | | ast_dns_resolve_ipv6_and_ipv4 |
|------------+----------------------+------------------------------------|
| f82d0b74fd | George Joseph | res_ari.c: Prefer exact handler |
| | | match over wildcard |
|------------+----------------------+------------------------------------|
| 51fd43206b | Sean Bright | audiohook.c: Substitute silence |
| | | for unavailable audio frames |
|------------+----------------------+------------------------------------|
| 92066b8746 | George Joseph | CI: Escape backslashes in |
| | | printenv/sort/tr |
|------------+----------------------+------------------------------------|
| db9684ad1e | George Joseph | CI: Add "throttle" label and |
| | | "skip_gate" capability |
|------------+----------------------+------------------------------------|
| 2641081caa | George Joseph | CI: Make node labels job-specific |
|------------+----------------------+------------------------------------|
| 9718376902 | Sean Bright | res_musiconhold: Use a vector |
| | | instead of custom array allocation |
|------------+----------------------+------------------------------------|
| 0ebfc4a19d | Sean Bright | manager: Send fewer packets |
|------------+----------------------+------------------------------------|
| d6af1acb8c | Sean Bright | res_musiconhold: Use |
| | | ast_pipe_nonblock() wrapper |
|------------+----------------------+------------------------------------|
| 05cf9c9912 | George Joseph | loader.c: Fix possible SEGV when a |
| | | module fails to register |
|------------+----------------------+------------------------------------|
| 06780d2bc4 | George Joseph | CI: Don't enable non-core modules |
| | | in Certified branches |
|------------+----------------------+------------------------------------|
| 3814faf848 | Leonid Fainshtein | openr2(6/6): Set hangup cause |
|------------+----------------------+------------------------------------|
| 06515707df | Tzafrir Cohen | openr2(5/6): added cli command -- |
| | | mfcr2 destroy link <index> |
|------------+----------------------+------------------------------------|
| 93a093f6c4 | Tzafrir Cohen | openr2(4/6): added new cli command |
| | | -- mfcr2 show links |
|------------+----------------------+------------------------------------|
| a45cfefb77 | Tzafrir Cohen | openr2(3/6): Convert r2links to |
| | | standard Asterisk AST_LIST* |
|------------+----------------------+------------------------------------|
| | | openr2(2/6): Stop polling channels |
| ec6e88592a | Tzafrir Cohen | when DAHDI returns -ENODEV (e.g: |
| | | plug-out) |
|------------+----------------------+------------------------------------|
| 7b6df814a6 | Tzafrir Cohen | openr2(1/6): bugfix in |
| | | configuration saving |
|------------+----------------------+------------------------------------|
| 356f4256cc | George Joseph | CI: Add cleanWs to cleanup steps |
| | | in jenkinsfiles |
|------------+----------------------+------------------------------------|
| 9d69469203 | Rodrigo RamÃrez | README.md: Update year |
| | Norambuena | |
|------------+----------------------+------------------------------------|
| c86c0973ff | George Joseph | CI: Add install-headers to the |
| | | install make targets |
|------------+----------------------+------------------------------------|
| f62d9013c1 | George Joseph | Build: Add separate header |
| | | install/uninstall targets |
|------------+----------------------+------------------------------------|
| 88ea395c33 | Kevin Harwell | manager: Log AMI actions |
+------------------------------------------------------------------------+
----------------------------------------------------------------------
Diffstat Results
[Back to Top]
This is a summary of the changes to the source code that went into this
release that was generated using the diffstat utility.
asterisk-16.5.0-summary.html | 105 -
asterisk-16.5.0-summary.txt | 302 --
b/.version | 2
b/CHANGES | 49
b/ChangeLog | 810 +++++++
b/Makefile | 30
b/README.md | 2
b/UPGRADE.txt | 14
b/apps/app_agent_pool.c | 4
b/apps/app_chanisavail.c | 3
b/apps/app_mixmonitor.c | 13
b/apps/app_queue.c | 12
b/apps/app_voicemail.c | 2
b/asterisk-16.6.0-rc2-summary.html | 26
b/asterisk-16.6.0-rc2-summary.txt | 118 +
b/channels/chan_dahdi.c | 427 +++-
b/channels/chan_iax2.c | 8
b/channels/chan_pjsip.c | 179 +
b/channels/chan_rtp.c | 19
b/channels/chan_unistim.c | 174 -
b/channels/sig_pri.c | 17
b/codecs/Makefile | 3
b/codecs/speex/arch.h | 13
b/codecs/speex/fixed_generic.h | 4
b/codecs/speex/resample.c | 332 +--
b/codecs/speex/speex_resampler.h | 4
b/funcs/func_talkdetect.c | 2
b/include/asterisk/audiohook.h | 2
b/include/asterisk/cel.h | 22
b/include/asterisk/dns_core.h | 22
b/include/asterisk/sched.h | 16
b/main/aoc.c | 8
b/main/audiohook.c | 11
b/main/ccss.c | 4
b/main/cdr.c | 52
b/main/cel.c | 82
b/main/channel.c | 4
b/main/core_local.c | 6
b/main/dns_core.c | 72
b/main/loader.c | 2
b/main/manager.c | 105 -
b/main/rtp_engine.c | 27
b/main/sched.c | 30
b/main/stasis_channels.c | 4
b/main/translate.c | 2
b/main/udptl.c | 18
b/menuselect/Makefile | 8
b/menuselect/autoconfig.h.in | 3
b/menuselect/configure | 334 +++
b/menuselect/configure.ac | 12
b/menuselect/makeopts.in | 3
b/res/ari/ari_model_validators.c | 56
b/res/ari/ari_model_validators.h | 22
b/res/ari/resource_channels.c | 192 +
b/res/ari/resource_channels.h | 42
b/res/res_ari.c | 23
b/res/res_ari_channels.c | 135 +
b/res/res_config_sqlite3.c | 6
b/res/res_musiconhold.c | 238 +-
b/res/res_pjsip.c | 4
b/res/res_pjsip/location.c | 6
b/res/res_pjsip_mwi.c | 289 ++
b/res/res_pjsip_sdp_rtp.c | 2
b/res/res_pjsip_session.c | 12
b/res/res_pjsip_t38.c | 72
b/res/res_sorcery_memory_cache.c | 1
b/res/res_srtp.c | 33
b/rest-api/api-docs/channels.json | 146 +
b/tests/CI/buildAsterisk.sh | 10
b/tests/CI/gates.jenkinsfile | 30
b/tests/CI/installAsterisk.sh | 2
b/tests/CI/periodics-daily.jenkinsfile | 9
b/tests/CI/ref_debug.jenkinsfile | 15
b/tests/CI/unittests.jenkinsfile | 9
b/tests/test_utils.c | 5
b/third-party/pjproject/patches/0020-patch_cnonce_only_digits_option.patch | 53
b/third-party/pjproject/patches/0030-Revert-Misc-re-2147-Fixed-warnings-in-SSL-socket-red.patch | 60
b/third-party/pjproject/patches/0031-Revert-Fixed-2204-Add-OpenSSL-remote-certificate-cha.patch | 84
b/third-party/pjproject/patches/0032-Revert-Re-2147-misc-Fix-failed-pjsip-test-transport_.patch | 64
b/third-party/pjproject/patches/0033-Revert-Close-1019-Support-for-multiple-listeners.patch | 1044 ++++++++++
80 files changed, 5101 insertions(+), 1086 deletions(-)

View File

@@ -0,0 +1,19 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-16.6.2</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-16.6.2</h3><h3 align="center">Date: 2019-11-21</h3><h3 align="center">&lt;asteriskteam@digium.com&gt;</h3><hr><h2 align="center">Table of Contents</h2><ol>
<li><a href="#summary">Summary</a></li>
<li><a href="#contributors">Contributors</a></li>
<li><a href="#closed_issues">Closed Issues</a></li>
<li><a href="#commits">Other Changes</a></li>
<li><a href="#diffstat">Diffstat</a></li>
</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release has been made to address one or more security vulnerabilities that have been identified. A security advisory document has been published for each vulnerability that includes additional information. Users of versions of Asterisk that are affected are strongly encouraged to review the advisories and determine what action they should take to protect their systems from these issues.</p><p>Security Advisories:</p><ul>
<li><a href="http://downloads.asterisk.org/pub/security/AST-2019-006,AST-2019-007.html">AST-2019-006,AST-2019-007</a></li>
</ul><p>The data in this summary reflects changes that have been made since the previous release, asterisk-16.6.1.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
<tr valign="top"><td width="33%">1 Asterisk Development Team <asteriskteam@digium.com><br/>1 George Joseph <gjoseph@digium.com><br/>1 Ben Ford <bford@digium.com><br/></td><td width="33%"><td width="33%">1 Eliel Sardañons <eliels@gmail.com><br/>1 Andrey V. T. <avt1203@gmail.com><br/>1 Eliel Sardañons<br/></td></tr>
</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Security</h3><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28589">ASTERISK-28589</a>: chan_sip: Depending on configuration an INVITE can alter Addr of a peer<br/>Reported by: Andrey V. T.<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ad66cbd0be39198d0016d7133c840289ae6e2dea">[ad66cbd0be]</a> Ben Ford -- chan_sip.c: Prevent address change on unauthenticated SIP request.</li>
</ul><br><h4>Category: Core/ManagerInterface</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28580">ASTERISK-28580</a>: Bypass SYSTEM write permission in manager action allows system commands execution<br/>Reported by: Eliel Sardañons<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8cc49544f889b3fc29011751420fda90d8349a1c">[8cc49544f8]</a> George Joseph -- manager.c: Prevent the Originate action from running the Originate app</li>
</ul><br><hr><a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all changes that went into this release that did not reference a JIRA issue.</p><table width="100%" border="1">
<tr><th>Revision</th><th>Author</th><th>Summary</th></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a4248c671a5c9a36f9d7277af8593b73352f038a">a4248c671a</a></td><td>Asterisk Development Team</td><td>Update CHANGES and UPGRADE.txt for 16.6.2</td></tr>
</table><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>0 files changed</pre><br></html>

111
asterisk-16.6.2-summary.txt Normal file
View File

@@ -0,0 +1,111 @@
Release Summary
asterisk-16.6.2
Date: 2019-11-21
<asteriskteam@digium.com>
----------------------------------------------------------------------
Table of Contents
1. Summary
2. Contributors
3. Closed Issues
4. Other Changes
5. Diffstat
----------------------------------------------------------------------
Summary
[Back to Top]
This release has been made to address one or more security vulnerabilities
that have been identified. A security advisory document has been published
for each vulnerability that includes additional information. Users of
versions of Asterisk that are affected are strongly encouraged to review
the advisories and determine what action they should take to protect their
systems from these issues.
Security Advisories:
* AST-2019-006,AST-2019-007
The data in this summary reflects changes that have been made since the
previous release, asterisk-16.6.1.
----------------------------------------------------------------------
Contributors
[Back to Top]
This table lists the people who have submitted code, those that have
tested patches, as well as those that reported issues on the issue tracker
that were resolved in this release. For coders, the number is how many of
their patches (of any size) were committed into this release. For testers,
the number is the number of times their name was listed as assisting with
testing a patch. Finally, for reporters, the number is the number of
issues that they reported that were affected by commits that went into
this release.
Coders Testers Reporters
1 Asterisk Development Team 1 Eliel Sardañons
1 George Joseph 1 Andrey V. T.
1 Ben Ford 1 Eliel Sardañons
----------------------------------------------------------------------
Closed Issues
[Back to Top]
This is a list of all issues from the issue tracker that were closed by
changes that went into this release.
Security
Category: Channels/chan_sip/General
ASTERISK-28589: chan_sip: Depending on configuration an INVITE can alter
Addr of a peer
Reported by: Andrey V. T.
* [ad66cbd0be] Ben Ford -- chan_sip.c: Prevent address change on
unauthenticated SIP request.
Category: Core/ManagerInterface
ASTERISK-28580: Bypass SYSTEM write permission in manager action allows
system commands execution
Reported by: Eliel Sardañons
* [8cc49544f8] George Joseph -- manager.c: Prevent the Originate action
from running the Originate app
----------------------------------------------------------------------
Commits Not Associated with an Issue
[Back to Top]
This is a list of all changes that went into this release that did not
reference a JIRA issue.
+------------------------------------------------------------------------+
| Revision | Author | Summary |
|------------+---------------------------+-------------------------------|
| a4248c671a | Asterisk Development Team | Update CHANGES and |
| | | UPGRADE.txt for 16.6.2 |
+------------------------------------------------------------------------+
----------------------------------------------------------------------
Diffstat Results
[Back to Top]
This is a summary of the changes to the source code that went into this
release that was generated using the diffstat utility.
0 files changed

View File

@@ -19245,18 +19245,6 @@ static enum check_auth_result check_peer_ok(struct sip_pvt *p, char *of,
bogus_peer = NULL;
}
/* build_peer, called through sip_find_peer, is not able to check the
* sip_pvt->natdetected flag in order to determine if the peer is behind
* NAT or not when SIP_PAGE3_NAT_AUTO_RPORT or SIP_PAGE3_NAT_AUTO_COMEDIA
* are set on the peer. So we check for that here and set the peer's
* address accordingly.
*/
set_peer_nat(p, peer);
if (p->natdetected && ast_test_flag(&peer->flags[2], SIP_PAGE3_NAT_AUTO_RPORT)) {
ast_sockaddr_copy(&peer->addr, &p->recv);
}
if (!ast_apply_acl(peer->acl, addr, "SIP Peer ACL: ")) {
ast_debug(2, "Found peer '%s' for '%s', but fails host access\n", peer->name, of);
sip_unref_peer(peer, "sip_unref_peer: check_peer_ok: from sip_find_peer call, early return of AUTH_ACL_FAILED");
@@ -19325,6 +19313,21 @@ static enum check_auth_result check_peer_ok(struct sip_pvt *p, char *of,
ast_string_field_set(p, peermd5secret, NULL);
}
if (!(res = check_auth(p, req, peer->name, p->peersecret, p->peermd5secret, sipmethod, uri2, reliable))) {
/* build_peer, called through sip_find_peer, is not able to check the
* sip_pvt->natdetected flag in order to determine if the peer is behind
* NAT or not when SIP_PAGE3_NAT_AUTO_RPORT or SIP_PAGE3_NAT_AUTO_COMEDIA
* are set on the peer. So we check for that here and set the peer's
* address accordingly. The address should ONLY be set once we are sure
* authentication was a success. If, for example, an INVITE was sent that
* matched the peer name but failed the authentication check, the address
* would be updated, which is bad.
*/
set_peer_nat(p, peer);
if (p->natdetected && ast_test_flag(&peer->flags[2], SIP_PAGE3_NAT_AUTO_RPORT)) {
ast_sockaddr_copy(&peer->addr, &p->recv);
}
/* If we have a call limit, set flag */
if (peer->call_limit)
ast_set_flag(&p->flags[0], SIP_CALL_LIMIT);
@@ -19424,6 +19427,7 @@ static enum check_auth_result check_peer_ok(struct sip_pvt *p, char *of,
}
}
sip_unref_peer(peer, "check_peer_ok: sip_unref_peer: tossing temp ptr to peer from sip_find_peer");
return res;
}

View File

@@ -5742,6 +5742,7 @@ static int action_originate(struct mansession *s, const struct message *m)
EAGI(/bin/rm,-rf /) */
strcasestr(app, "mixmonitor") || /* MixMonitor(blah,,rm -rf) */
strcasestr(app, "externalivr") || /* ExternalIVR(rm -rf) */
strcasestr(app, "originate") || /* Originate(Local/1234,app,System,rm -rf) */
(strstr(appdata, "SHELL") && (bad_appdata = 1)) || /* NoOp(${SHELL(rm -rf /)}) */
(strstr(appdata, "EVAL") && (bad_appdata = 1)) /* NoOp(${EVAL(${some_var_containing_SHELL})}) */
)) {

View File

@@ -1289,6 +1289,13 @@ static int create_unsolicited_mwi_subscriptions(struct ast_sip_endpoint *endpoin
if (!aggregate_sub) {
return 0; /* No MWI aggregation for you */
}
/*
* Just in case we somehow get in the position of recreating with no previous
* aggregate object, set recreate to false here in order to allow the new
* object to be linked into the container below
*/
recreate = 0;
}
}
@@ -1330,13 +1337,13 @@ static int create_unsolicited_mwi_subscriptions(struct ast_sip_endpoint *endpoin
if (aggregate_sub) {
if (ao2_container_count(aggregate_sub->stasis_subs)) {
ao2_link_flags(unsolicited_mwi, aggregate_sub, OBJ_NOLOCK);
/* Only link if we're dealing with a new aggregate object */
if (!recreate) {
ao2_link_flags(unsolicited_mwi, aggregate_sub, OBJ_NOLOCK);
}
if (send_now && sub_added) {
send_notify(aggregate_sub, NULL, 0);
}
} else {
/* No stasis subscriptions then no MWI data to aggregate */
ao2_ref(aggregate_sub, -1);
}
}

View File

@@ -1,60 +0,0 @@
From 8d0652d4a02c7b8da58b1b98421cfda57056184d Mon Sep 17 00:00:00 2001
From: George Joseph <gjoseph@digium.com>
Date: Tue, 24 Sep 2019 06:41:16 -0600
Subject: [PATCH 30/33] Revert "Misc (re #2147): Fixed warnings in SSL socket:
redefinition of typedef 'pj_ssl_sock_t' and unused 'get_pem'."
This reverts commit 688a9b0de685328f62b2df86304b44c21e4460ae.
---
pjlib/src/pj/ssl_sock_imp_common.h | 4 ++--
pjlib/src/pj/ssl_sock_ossl.c | 5 +----
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/pjlib/src/pj/ssl_sock_imp_common.h b/pjlib/src/pj/ssl_sock_imp_common.h
index 09f259ef7..4edbb3b82 100644
--- a/pjlib/src/pj/ssl_sock_imp_common.h
+++ b/pjlib/src/pj/ssl_sock_imp_common.h
@@ -93,7 +93,7 @@ typedef struct circ_buf_t {
/*
* Secure socket structure definition.
*/
-struct pj_ssl_sock_t
+typedef struct pj_ssl_sock_t
{
pj_pool_t *pool;
pj_ssl_sock_t *parent;
@@ -139,7 +139,7 @@ struct pj_ssl_sock_t
circ_buf_t circ_buf_output;
pj_lock_t *circ_buf_output_mutex;
-};
+} pj_ssl_sock_t;
/*
diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c
index b4ac5c15f..debb105b1 100644
--- a/pjlib/src/pj/ssl_sock_ossl.c
+++ b/pjlib/src/pj/ssl_sock_ossl.c
@@ -37,6 +37,7 @@
#if defined(PJ_HAS_SSL_SOCK) && PJ_HAS_SSL_SOCK != 0 && \
(PJ_SSL_SOCK_IMP == PJ_SSL_SOCK_IMP_OPENSSL)
+#include "ssl_sock_imp_common.h"
#include "ssl_sock_imp_common.c"
#define THIS_FILE "ssl_sock_ossl.c"
@@ -1575,10 +1576,6 @@ static void ssl_update_remote_cert_chain_info(pj_pool_t *pool,
{
int i;
- /* For now, get_pem has to be PJ_TRUE */
- pj_assert(get_pem);
- PJ_UNUSED_ARG(get_pem);
-
ci->raw_chain.cert_raw = (pj_str_t *)pj_pool_calloc(pool,
sk_X509_num(chain),
sizeof(pj_str_t));
--
2.21.0

View File

@@ -0,0 +1,105 @@
From 489281f29fc7b97143cf79154f22e5007adaba39 Mon Sep 17 00:00:00 2001
From: George Joseph <gjoseph@digium.com>
Date: Wed, 9 Oct 2019 07:49:44 -0600
Subject: [PATCH 30/31] ssl regression fix
---
pjlib/src/pj/ssl_sock_gtls.c | 6 ++++--
pjlib/src/pj/ssl_sock_imp_common.c | 4 ++++
pjlib/src/pj/ssl_sock_imp_common.h | 3 +++
pjlib/src/pj/ssl_sock_ossl.c | 9 +++++----
4 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/pjlib/src/pj/ssl_sock_gtls.c b/pjlib/src/pj/ssl_sock_gtls.c
index 311b7b757..484770ae4 100644
--- a/pjlib/src/pj/ssl_sock_gtls.c
+++ b/pjlib/src/pj/ssl_sock_gtls.c
@@ -1050,7 +1050,8 @@ static void ssl_update_certs_info(pj_ssl_sock_t *ssock)
goto us_out;
tls_cert_get_info(ssock->pool, &ssock->local_cert_info, cert);
- tls_cert_get_chain_raw(ssock->pool, &ssock->local_cert_info, us, 1);
+ pj_pool_reset(ssock->info_pool);
+ tls_cert_get_chain_raw(ssock->info_pool, &ssock->local_cert_info, us, 1);
us_out:
tls_last_error = ret;
@@ -1077,7 +1078,8 @@ us_out:
goto peer_out;
tls_cert_get_info(ssock->pool, &ssock->remote_cert_info, cert);
- tls_cert_get_chain_raw(ssock->pool, &ssock->remote_cert_info, certs,
+ pj_pool_reset(ssock->info_pool);
+ tls_cert_get_chain_raw(ssock->info_pool, &ssock->remote_cert_info, certs,
certslen);
peer_out:
diff --git a/pjlib/src/pj/ssl_sock_imp_common.c b/pjlib/src/pj/ssl_sock_imp_common.c
index e6273d832..51a62a2fb 100644
--- a/pjlib/src/pj/ssl_sock_imp_common.c
+++ b/pjlib/src/pj/ssl_sock_imp_common.c
@@ -616,6 +616,7 @@ static void ssl_on_destroy(void *arg)
}
/* Secure release pool, i.e: all memory blocks will be zeroed first */
+ pj_pool_secure_release(&ssock->info_pool);
pj_pool_secure_release(&ssock->pool);
}
@@ -1262,15 +1263,18 @@ PJ_DEF(pj_status_t) pj_ssl_sock_create (pj_pool_t *pool,
{
pj_ssl_sock_t *ssock;
pj_status_t status;
+ pj_pool_t *info_pool;
PJ_ASSERT_RETURN(pool && param && p_ssock, PJ_EINVAL);
PJ_ASSERT_RETURN(param->sock_type == pj_SOCK_STREAM(), PJ_ENOTSUP);
+ info_pool = pj_pool_create(pool->factory, "ssl_chain%p", 512, 512, NULL);
pool = pj_pool_create(pool->factory, "ssl%p", 512, 512, NULL);
/* Create secure socket */
ssock = ssl_alloc(pool);
ssock->pool = pool;
+ ssock->info_pool = info_pool;
ssock->sock = PJ_INVALID_SOCKET;
ssock->ssl_state = SSL_STATE_NULL;
ssock->circ_buf_input.owner = ssock;
diff --git a/pjlib/src/pj/ssl_sock_imp_common.h b/pjlib/src/pj/ssl_sock_imp_common.h
index 09f259ef7..eb45f14e0 100644
--- a/pjlib/src/pj/ssl_sock_imp_common.h
+++ b/pjlib/src/pj/ssl_sock_imp_common.h
@@ -96,6 +96,9 @@ typedef struct circ_buf_t {
struct pj_ssl_sock_t
{
pj_pool_t *pool;
+ pj_pool_t *info_pool; /* this is for certificate chain
+ * information allocation. Don't use for
+ * other purposes. */
pj_ssl_sock_t *parent;
pj_ssl_sock_param param;
pj_ssl_sock_param newsock_param;
diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c
index b4ac5c15f..2545b7c37 100644
--- a/pjlib/src/pj/ssl_sock_ossl.c
+++ b/pjlib/src/pj/ssl_sock_ossl.c
@@ -1637,11 +1637,12 @@ static void ssl_update_certs_info(pj_ssl_sock_t *ssock)
chain = SSL_get_peer_cert_chain(ossock->ossl_ssl);
if (chain) {
- ssl_update_remote_cert_chain_info(ssock->pool,
- &ssock->remote_cert_info,
- chain, PJ_TRUE);
+ pj_pool_reset(ssock->info_pool);
+ ssl_update_remote_cert_chain_info(ssock->info_pool,
+ &ssock->remote_cert_info,
+ chain, PJ_TRUE);
} else {
- ssock->remote_cert_info.raw_chain.cnt = 0;
+ ssock->remote_cert_info.raw_chain.cnt = 0;
}
}
--
2.21.0

View File

@@ -1,84 +0,0 @@
From 616a13933f33a6d74f84d85b5bfb858279a09e2d Mon Sep 17 00:00:00 2001
From: George Joseph <gjoseph@digium.com>
Date: Tue, 24 Sep 2019 06:42:04 -0600
Subject: [PATCH 31/33] Revert "Fixed #2204: Add OpenSSL remote certificate
chain info"
This reverts commit f71d60c866c4572a7c8398fe982416771fc6a7f5.
---
pjlib/src/pj/ssl_sock_ossl.c | 45 ------------------------------------
1 file changed, 45 deletions(-)
diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c
index debb105b1..109c5c1e2 100644
--- a/pjlib/src/pj/ssl_sock_ossl.c
+++ b/pjlib/src/pj/ssl_sock_ossl.c
@@ -1566,41 +1566,6 @@ static void get_cert_info(pj_pool_t *pool, pj_ssl_cert_info *ci, X509 *x,
}
}
-/* Update remote certificates chain info. This function should be
- * called after handshake or renegotiation successfully completed.
- */
-static void ssl_update_remote_cert_chain_info(pj_pool_t *pool,
- pj_ssl_cert_info *ci,
- STACK_OF(X509) *chain,
- pj_bool_t get_pem)
-{
- int i;
-
- ci->raw_chain.cert_raw = (pj_str_t *)pj_pool_calloc(pool,
- sk_X509_num(chain),
- sizeof(pj_str_t));
- ci->raw_chain.cnt = sk_X509_num(chain);
-
- for (i = 0; i < sk_X509_num(chain); i++) {
- BIO *bio;
- BUF_MEM *ptr;
- X509 *x = sk_X509_value(chain, i);
-
- bio = BIO_new(BIO_s_mem());
-
- if (!PEM_write_bio_X509(bio, x)) {
- PJ_LOG(3, (THIS_FILE, "Error retrieving raw certificate info"));
- ci->raw_chain.cert_raw[i].ptr = NULL;
- ci->raw_chain.cert_raw[i].slen = 0;
- } else {
- BIO_write(bio, "\0", 1);
- BIO_get_mem_ptr(bio, &ptr);
- pj_strdup2(pool, &ci->raw_chain.cert_raw[i], ptr->data );
- }
-
- BIO_free(bio);
- }
-}
/* Update local & remote certificates info. This function should be
* called after handshake or renegotiation successfully completed.
@@ -1609,7 +1574,6 @@ static void ssl_update_certs_info(pj_ssl_sock_t *ssock)
{
ossl_sock_t *ossock = (ossl_sock_t *)ssock;
X509 *x;
- STACK_OF(X509) *chain;
pj_assert(ssock->ssl_state == SSL_STATE_ESTABLISHED);
@@ -1631,15 +1595,6 @@ static void ssl_update_certs_info(pj_ssl_sock_t *ssock)
} else {
pj_bzero(&ssock->remote_cert_info, sizeof(pj_ssl_cert_info));
}
-
- chain = SSL_get_peer_cert_chain(ossock->ossl_ssl);
- if (chain) {
- ssl_update_remote_cert_chain_info(ssock->pool,
- &ssock->remote_cert_info,
- chain, PJ_TRUE);
- } else {
- ssock->remote_cert_info.raw_chain.cnt = 0;
- }
}
--
2.21.0

View File

@@ -0,0 +1,187 @@
From 9c6108ca392d5e0392e7fb5d2ffde85e3c44ce55 Mon Sep 17 00:00:00 2001
From: George Joseph <gjoseph@digium.com>
Date: Wed, 9 Oct 2019 07:50:32 -0600
Subject: [PATCH 31/31] transport regression fix
---
pjsip/src/pjsip/sip_transport.c | 73 +++++++++++++++++++++++++++------
1 file changed, 61 insertions(+), 12 deletions(-)
diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c
index 65ac823d4..da6b70e50 100644
--- a/pjsip/src/pjsip/sip_transport.c
+++ b/pjsip/src/pjsip/sip_transport.c
@@ -50,6 +50,24 @@ static const char *addr_string(const pj_sockaddr_t *addr)
str, sizeof(str));
return str;
}
+static const char* print_tpsel_info(const pjsip_tpselector *sel)
+{
+ static char tpsel_info_buf[80];
+ if (!sel) return "(null)";
+ if (sel->type==PJSIP_TPSELECTOR_LISTENER)
+ pj_ansi_snprintf(tpsel_info_buf, sizeof(tpsel_info_buf),
+ "listener[%s], reuse=%d", sel->u.listener->obj_name,
+ !sel->disable_connection_reuse);
+ else if (sel->type==PJSIP_TPSELECTOR_TRANSPORT)
+ pj_ansi_snprintf(tpsel_info_buf, sizeof(tpsel_info_buf),
+ "transport[%s], reuse=%d", sel->u.transport->info,
+ !sel->disable_connection_reuse);
+ else
+ pj_ansi_snprintf(tpsel_info_buf, sizeof(tpsel_info_buf),
+ "unknown[%p], reuse=%d", sel->u.ptr,
+ !sel->disable_connection_reuse);
+ return tpsel_info_buf;
+}
#else
# define TRACE_(x)
#endif
@@ -1210,10 +1228,14 @@ PJ_DEF(pj_status_t) pjsip_transport_register( pjsip_tpmgr *mgr,
* new transport to the list.
*/
pj_list_push_back(tp_ref, tp_add);
+ TRACE_((THIS_FILE, "Remote address already registered, "
+ "appended the transport to the list"));
} else {
/* Transport list not found, add it to the hash table. */
pj_hash_set_np(mgr->table, &tp->key, key_len, hval, tp_add->tp_buf,
tp_add);
+ TRACE_((THIS_FILE, "Remote address not registered, "
+ "added the transport to the hash"));
}
/* Add ref transport group lock, if any */
@@ -1283,6 +1305,13 @@ static pj_status_t destroy_transport( pjsip_tpmgr *mgr,
/* The transport list has multiple entry. */
pj_hash_set_np(mgr->table, &tp_next->tp->key, key_len,
hval, tp_next->tp_buf, tp_next);
+ TRACE_((THIS_FILE, "Hash entry updated after "
+ "transport %d being destroyed",
+ tp->obj_name));
+ } else {
+ TRACE_((THIS_FILE, "Hash entry deleted after "
+ "transport %d being destroyed",
+ tp->obj_name));
}
}
@@ -1294,6 +1323,14 @@ static pj_status_t destroy_transport( pjsip_tpmgr *mgr,
}
tp_iter = tp_iter->next;
} while (tp_iter != tp_ref);
+
+ if (tp_iter->tp != tp) {
+ PJ_LOG(3, (THIS_FILE, "Warning: transport %s being destroyed is "
+ "not registered", tp->obj_name));
+ }
+ } else {
+ PJ_LOG(3, (THIS_FILE, "Warning: transport %s being destroyed is "
+ "not found in the hash table", tp->obj_name));
}
pj_lock_release(mgr->lock);
@@ -2159,6 +2196,7 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport(pjsip_tpmgr *mgr,
NULL, tp);
}
+
/*
* pjsip_tpmgr_acquire_transport2()
*
@@ -2176,8 +2214,9 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr,
pjsip_tpfactory *factory;
pj_status_t status;
- TRACE_((THIS_FILE,"Acquiring transport type=%s, remote=%s:%d",
+ TRACE_((THIS_FILE,"Acquiring transport type=%s, sel=%s remote=%s:%d",
pjsip_transport_get_type_name(type),
+ print_tpsel_info(sel),
addr_string(remote),
pj_sockaddr_get_port(remote)));
@@ -2194,6 +2233,7 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr,
/* See if the transport is (not) suitable */
if (seltp->key.type != type) {
pj_lock_release(mgr->lock);
+ TRACE_((THIS_FILE, "Transport type in tpsel not matched"));
return PJSIP_ETPNOTSUITABLE;
}
@@ -2234,6 +2274,7 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr,
{
if (sel->u.listener->type != type) {
pj_lock_release(mgr->lock);
+ TRACE_((THIS_FILE, "Listener type in tpsel not matched"));
return PJSIP_ETPNOTSUITABLE;
}
}
@@ -2249,21 +2290,25 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr,
tp_entry = (transport *)pj_hash_get(mgr->table, &key, key_len,
NULL);
if (tp_entry) {
- if (sel && sel->type == PJSIP_TPSELECTOR_LISTENER) {
- transport *tp_iter = tp_entry;
- do {
+ transport *tp_iter = tp_entry;
+ do {
+ /* Don't use transport being shutdown */
+ if (!tp_iter->tp->is_shutdown) {
if (sel && sel->type == PJSIP_TPSELECTOR_LISTENER &&
- sel->u.listener &&
- tp_iter->tp->factory == sel->u.listener)
+ sel->u.listener)
{
+ /* Match listener if selector is set */
+ if (tp_iter->tp->factory == sel->u.listener) {
+ tp_ref = tp_iter->tp;
+ break;
+ }
+ } else {
tp_ref = tp_iter->tp;
break;
}
- tp_iter = tp_iter->next;
- } while (tp_iter != tp_entry);
- } else {
- tp_ref = tp_entry->tp;
- }
+ }
+ tp_iter = tp_iter->next;
+ } while (tp_iter != tp_entry);
}
}
@@ -2276,7 +2321,7 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr,
/* Ignore address for loop transports. */
if (type == PJSIP_TRANSPORT_LOOP ||
- type == PJSIP_TRANSPORT_LOOP_DGRAM)
+ type == PJSIP_TRANSPORT_LOOP_DGRAM)
{
pj_sockaddr *addr = &key.rem_addr;
@@ -2315,6 +2360,7 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr,
* 'duplicate' of the existing transport (same type & remote addr,
* but different factory).
*/
+ TRACE_((THIS_FILE, "Transport found but from different listener"));
}
if (tp_ref!=NULL && !tp_ref->is_shutdown) {
@@ -2347,10 +2393,13 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr,
*/
/* Verify that the listener type matches the destination type */
+ /* Already checked above. */
+ /*
if (sel->u.listener->type != type) {
pj_lock_release(mgr->lock);
return PJSIP_ETPNOTSUITABLE;
}
+ */
/* We'll use this listener to create transport */
factory = sel->u.listener;
--
2.21.0

View File

@@ -1,64 +0,0 @@
From 17cd744e19cd332a219a512770fa6e18453044ba Mon Sep 17 00:00:00 2001
From: George Joseph <gjoseph@digium.com>
Date: Tue, 24 Sep 2019 06:45:25 -0600
Subject: [PATCH 32/33] Revert "Re #2147 (misc): Fix failed pjsip-test
(transport_loop_test) caused by r6002."
This reverts commit 342148f5bcf3a6b0029ce834b8567c2cd691b15b.
---
pjsip/src/pjsip/sip_transport.c | 12 +++++-------
pjsip/src/pjsip/sip_transport_loop.c | 2 +-
pjsip/src/test/transport_loop_test.c | 1 -
3 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c
index 65ac823d4..d63823a98 100644
--- a/pjsip/src/pjsip/sip_transport.c
+++ b/pjsip/src/pjsip/sip_transport.c
@@ -1222,13 +1222,11 @@ PJ_DEF(pj_status_t) pjsip_transport_register( pjsip_tpmgr *mgr,
pj_lock_release(mgr->lock);
- TRACE_((THIS_FILE, "Transport %s registered: type=%s, remote=%s:%d",
- tp->obj_name,
- pjsip_transport_get_type_name(tp->key.type),
- pj_sockaddr_has_addr(&tp->key.rem_addr)?
- addr_string(&tp->key.rem_addr):"",
- pj_sockaddr_has_addr(&tp->key.rem_addr)?
- pj_sockaddr_get_port(&tp->key.rem_addr):0));
+ TRACE_((THIS_FILE,"Transport %s registered: type=%s, remote=%s:%d",
+ tp->obj_name,
+ pjsip_transport_get_type_name(tp->key.type),
+ addr_string(&tp->key.rem_addr),
+ pj_sockaddr_get_port(&tp->key.rem_addr)));
return PJ_SUCCESS;
}
diff --git a/pjsip/src/pjsip/sip_transport_loop.c b/pjsip/src/pjsip/sip_transport_loop.c
index 37e20e69b..24e1a5f69 100644
--- a/pjsip/src/pjsip/sip_transport_loop.c
+++ b/pjsip/src/pjsip/sip_transport_loop.c
@@ -376,7 +376,7 @@ PJ_DEF(pj_status_t) pjsip_loop_start( pjsip_endpoint *endpt,
if (status != PJ_SUCCESS)
goto on_error;
loop->base.key.type = PJSIP_TRANSPORT_LOOP_DGRAM;
- //loop->base.key.rem_addr.addr.sa_family = pj_AF_INET();
+ loop->base.key.rem_addr.addr.sa_family = pj_AF_INET();
loop->base.type_name = "LOOP-DGRAM";
loop->base.info = "LOOP-DGRAM";
loop->base.flag = PJSIP_TRANSPORT_DATAGRAM;
diff --git a/pjsip/src/test/transport_loop_test.c b/pjsip/src/test/transport_loop_test.c
index 5f2f03904..efa2ea116 100644
--- a/pjsip/src/test/transport_loop_test.c
+++ b/pjsip/src/test/transport_loop_test.c
@@ -36,7 +36,6 @@ static int datagram_loop_test()
PJ_LOG(3,(THIS_FILE, "testing datagram loop transport"));
- pj_sockaddr_in_init(&addr, NULL, 0);
/* Test acquire transport. */
status = pjsip_endpt_acquire_transport( endpt, PJSIP_TRANSPORT_LOOP_DGRAM,
&addr, sizeof(addr), NULL, &loop);
--
2.21.0