You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(6) |
Jul
(14) |
Aug
(156) |
Sep
(35) |
Oct
(48) |
Nov
(55) |
Dec
(16) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(24) |
Feb
(154) |
Mar
(139) |
Apr
(175) |
May
(87) |
Jun
(34) |
Jul
(42) |
Aug
(68) |
Sep
(41) |
Oct
(76) |
Nov
(77) |
Dec
(50) |
2008 |
Jan
(98) |
Feb
(43) |
Mar
(102) |
Apr
(27) |
May
(55) |
Jun
(13) |
Jul
(58) |
Aug
(62) |
Sep
(61) |
Oct
(43) |
Nov
(87) |
Dec
(134) |
2009 |
Jan
(175) |
Feb
(106) |
Mar
(58) |
Apr
(41) |
May
(74) |
Jun
(123) |
Jul
(252) |
Aug
(192) |
Sep
(69) |
Oct
(38) |
Nov
(117) |
Dec
(95) |
2010 |
Jan
(146) |
Feb
(76) |
Mar
(90) |
Apr
(60) |
May
(23) |
Jun
(19) |
Jul
(208) |
Aug
(140) |
Sep
(103) |
Oct
(114) |
Nov
(50) |
Dec
(47) |
2011 |
Jan
(59) |
Feb
(47) |
Mar
(61) |
Apr
(58) |
May
(41) |
Jun
(11) |
Jul
(17) |
Aug
(49) |
Sep
(34) |
Oct
(166) |
Nov
(38) |
Dec
(70) |
2012 |
Jan
(87) |
Feb
(37) |
Mar
(28) |
Apr
(25) |
May
(29) |
Jun
(30) |
Jul
(43) |
Aug
(27) |
Sep
(46) |
Oct
(27) |
Nov
(51) |
Dec
(70) |
2013 |
Jan
(92) |
Feb
(34) |
Mar
(58) |
Apr
(37) |
May
(46) |
Jun
(9) |
Jul
(38) |
Aug
(22) |
Sep
(28) |
Oct
(42) |
Nov
(44) |
Dec
(34) |
2014 |
Jan
(63) |
Feb
(39) |
Mar
(48) |
Apr
(31) |
May
(21) |
Jun
(43) |
Jul
(36) |
Aug
(69) |
Sep
(53) |
Oct
(56) |
Nov
(46) |
Dec
(49) |
2015 |
Jan
(63) |
Feb
(35) |
Mar
(30) |
Apr
(38) |
May
(27) |
Jun
(42) |
Jul
(42) |
Aug
(63) |
Sep
(18) |
Oct
(45) |
Nov
(65) |
Dec
(71) |
2016 |
Jan
(54) |
Feb
(79) |
Mar
(59) |
Apr
(38) |
May
(32) |
Jun
(46) |
Jul
(42) |
Aug
(30) |
Sep
(58) |
Oct
(33) |
Nov
(98) |
Dec
(59) |
2017 |
Jan
(79) |
Feb
(12) |
Mar
(43) |
Apr
(32) |
May
(76) |
Jun
(59) |
Jul
(44) |
Aug
(14) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <abe...@us...> - 2016-11-11 16:08:40
|
Revision: 7945 http://sourceforge.net/p/astlinux/code/7945 Author: abelbeck Date: 2016-11-11 16:08:37 +0000 (Fri, 11 Nov 2016) Log Message: ----------- web interface, Status tab, updated 'Show Licenses' information. Modified Paths: -------------- branches/1.0/package/webinterface/altweb/common/license-packages.txt branches/1.0/package/webinterface/altweb/common/version.php Modified: branches/1.0/package/webinterface/altweb/common/license-packages.txt =================================================================== --- branches/1.0/package/webinterface/altweb/common/license-packages.txt 2016-11-11 14:50:16 UTC (rev 7944) +++ branches/1.0/package/webinterface/altweb/common/license-packages.txt 2016-11-11 16:08:37 UTC (rev 7945) @@ -47,13 +47,13 @@ darkstat~Copyright (c) 2001-2015 Emil Mikulic, et al. NUT~Copyright (c) 1999-2016 Russell Kroll, Arnaud Quette, et al. iftop~Copyright (c) 2002-2014 Paul Warren, Chris Lightfoot, et al. -dnscrypt-proxy~Copyright (c) 2011-2016 Frank Denis -libsodium~Copyright (c) 2013-2016 Frank Denis +dnscrypt-proxy~Copyright (c) 2011-2016 Frank Denis. +libsodium~Copyright (c) 2013-2016 Frank Denis. phoneprov-tools~Copyright (c) 2015-2016 Lonnie Abelbeck and Michael Keuter. smartmontools~Copyright (c) 2002-2016 Bruce Allen, Christian Franke, et al. -Monit~Copyright (c) 2001-2016 Tildeslash. All rights reserved -sqlite~Copyright (c) 1995-2016 SQLite Consortium -sqliteodbc~Copyright (c) 2001-2016 Christian Werner +Monit~Copyright (c) 2001-2016 Tildeslash. All rights reserved. +sqlite~Copyright (c) 1995-2016 SQLite Consortium. +sqliteodbc~Copyright (c) 2001-2016 Christian Werner. Fossil~Copyright (c) 2007-2016 D. Richard Hipp. All rights reserved. BusyBox~Copyright (c) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko, et al. dhcp6c~Copyright (c) 1998-2008 WIDE Project with 2016 Debian patches. @@ -62,3 +62,4 @@ unbound~Copyright (c) 2007-2016 NLnet Labs. All rights reserved. avahi~Copyright (c) 2004-2016 Lennart Poettering, Trent Lloyd, Avahi developers. Linux Kernel~Copyright (c) 1997-2016 The Linux Kernel Organization, Inc.; Linux is a Registered Trademark of Linus Torvalds. +whois~Copyright (c) 1999-2016 Marco d'Itri. Modified: branches/1.0/package/webinterface/altweb/common/version.php =================================================================== --- branches/1.0/package/webinterface/altweb/common/version.php 2016-11-11 14:50:16 UTC (rev 7944) +++ branches/1.0/package/webinterface/altweb/common/version.php 2016-11-11 16:08:37 UTC (rev 7945) @@ -1,6 +1,6 @@ <?php // version.php for AstLinux Alternate Web Interface -$GUI_VERSION = '1.8.38'; +$GUI_VERSION = '1.8.39'; ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-11 14:50:18
|
Revision: 7944 http://sourceforge.net/p/astlinux/code/7944 Author: abelbeck Date: 2016-11-11 14:50:16 +0000 (Fri, 11 Nov 2016) Log Message: ----------- update ChangeLog Modified Paths: -------------- branches/1.0/docs/ChangeLog.txt Modified: branches/1.0/docs/ChangeLog.txt =================================================================== --- branches/1.0/docs/ChangeLog.txt 2016-11-11 14:48:21 UTC (rev 7943) +++ branches/1.0/docs/ChangeLog.txt 2016-11-11 14:50:16 UTC (rev 7944) @@ -57,7 +57,7 @@ ** Asterisk --- Asterisk 11.24.1 (version bump) and 13.12.1 (version bump) +-- Asterisk 11.24.1 (version bump) and 13.12.2 (version bump) -- DAHDI, dahdi-linux 2.8.0.1 (no change) and dahdi-tools 2.8.0 (no change) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-11 14:48:23
|
Revision: 7943 http://sourceforge.net/p/astlinux/code/7943 Author: abelbeck Date: 2016-11-11 14:48:21 +0000 (Fri, 11 Nov 2016) Log Message: ----------- asterisk, version bump to 13.12.2 Modified Paths: -------------- branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch branches/1.0/package/asterisk/asterisk.mk Removed Paths: ------------- branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch Modified: branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2016-11-11 14:02:14 UTC (rev 7942) +++ branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2016-11-11 14:48:21 UTC (rev 7943) @@ -1,6 +1,6 @@ --- asterisk-13/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 +++ asterisk-13/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 -@@ -17358,7 +17358,7 @@ +@@ -17356,7 +17356,7 @@ } if (!force) { Deleted: branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch 2016-11-11 14:02:14 UTC (rev 7942) +++ branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch 2016-11-11 14:48:21 UTC (rev 7943) @@ -1,17 +0,0 @@ -X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=blobdiff_plain;f=channels%2Fchan_sip.c;h=b661f0de227ff5023155faf7181892b28699a519;hp=b6b4cc86e50c7eb36d26abb0620f0f5c3fbb09e0;hb=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4;hpb=57a9797e0ac51eae3b8f3254627646b9698a60d2 - -diff --git a/channels/chan_sip.c b/channels/chan_sip.c -index b6b4cc8..b661f0d 100644 ---- a/channels/chan_sip.c -+++ b/channels/chan_sip.c -@@ -8628,9 +8628,7 @@ static struct ast_frame *sip_read(struct ast_channel *ast) - - sip_pvt_lock(p); - fr = sip_rtp_read(ast, p, &faxdetected); -- if (fr && fr->frametype != AST_FRAME_NULL) { -- p->lastrtprx = time(NULL); -- } -+ p->lastrtprx = time(NULL); - - /* If we detect a CNG tone and fax detection is enabled then send us off to the fax extension */ - if (faxdetected && ast_test_flag(&p->flags[1], SIP_PAGE2_FAX_DETECT_CNG)) { Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2016-11-11 14:02:14 UTC (rev 7942) +++ branches/1.0/package/asterisk/asterisk.mk 2016-11-11 14:48:21 UTC (rev 7943) @@ -7,7 +7,7 @@ ASTERISK_VERSION := 11.24.1 else ifeq ($(BR2_PACKAGE_ASTERISK_v13),y) -ASTERISK_VERSION := 13.12.1 +ASTERISK_VERSION := 13.12.2 else ASTERISK_VERSION := 15.0.0 endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-11 14:02:16
|
Revision: 7942 http://sourceforge.net/p/astlinux/code/7942 Author: abelbeck Date: 2016-11-11 14:02:14 +0000 (Fri, 11 Nov 2016) Log Message: ----------- asterisk, the Asterisk-GUI is no longer supported, remove hack, related r7067 Revision Links: -------------- http://sourceforge.net/p/astlinux/code/7067 Modified Paths: -------------- branches/1.0/package/asterisk/asterisk.init Modified: branches/1.0/package/asterisk/asterisk.init =================================================================== --- branches/1.0/package/asterisk/asterisk.init 2016-11-08 14:01:45 UTC (rev 7941) +++ branches/1.0/package/asterisk/asterisk.init 2016-11-11 14:02:14 UTC (rev 7942) @@ -31,11 +31,6 @@ mkdir -p /var/tmp/asterisk/agi-bin - # Asterisk-GUI tmp directory - if [ -L /stat/var/lib/asterisk/static-http/config/tmp ]; then - mkdir -p -m 0700 /var/tmp/asterisk-gui - fi - if [ ! -d /var/log/asterisk ]; then mkdir /var/log/asterisk fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-08 14:01:46
|
Revision: 7941 http://sourceforge.net/p/astlinux/code/7941 Author: abelbeck Date: 2016-11-08 14:01:45 +0000 (Tue, 08 Nov 2016) Log Message: ----------- whois, whois.denic.de was set to US-ASCII if no idn/iconv is used, which fails, use UTF-8 instead of US-ASCII Added Paths: ----------- branches/1.0/package/whois/whois-DENIC_PARAM_CHARSET-UTF-8.patch Added: branches/1.0/package/whois/whois-DENIC_PARAM_CHARSET-UTF-8.patch =================================================================== --- branches/1.0/package/whois/whois-DENIC_PARAM_CHARSET-UTF-8.patch (rev 0) +++ branches/1.0/package/whois/whois-DENIC_PARAM_CHARSET-UTF-8.patch 2016-11-08 14:01:45 UTC (rev 7941) @@ -0,0 +1,11 @@ +--- whois-5.2.13/whois.c.orig 2016-11-08 07:17:26.381230844 -0600 ++++ whois-5.2.13/whois.c 2016-11-08 07:46:05.563327605 -0600 +@@ -661,7 +661,7 @@ + #ifdef HAVE_ICONV + # define DENIC_PARAM_CHARSET "" + #else +-# define DENIC_PARAM_CHARSET " -C US-ASCII" ++# define DENIC_PARAM_CHARSET " -C UTF-8" + #endif + + /* add useful default flags if there are no flags or multiple arguments */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-08 02:19:40
|
Revision: 7940 http://sourceforge.net/p/astlinux/code/7940 Author: abelbeck Date: 2016-11-08 02:19:38 +0000 (Tue, 08 Nov 2016) Log Message: ----------- runnix, missed a mirror.astlinux.org to mirror.astlinux-project.org edit Modified Paths: -------------- branches/1.0/boot/runnix/runnix.mk Modified: branches/1.0/boot/runnix/runnix.mk =================================================================== --- branches/1.0/boot/runnix/runnix.mk 2016-11-07 17:54:29 UTC (rev 7939) +++ branches/1.0/boot/runnix/runnix.mk 2016-11-08 02:19:38 UTC (rev 7940) @@ -5,7 +5,7 @@ ############################################################# RUNNIX_VER:=0.4-7671 RUNNIX_SOURCE:=runnix-$(RUNNIX_VER).tar.gz -RUNNIX_SITE:=http://mirror.astlinux.org/runnix4 +RUNNIX_SITE:=http://mirror.astlinux-project.org/runnix4 RUNNIX_DIR:=$(BUILD_DIR)/runnix-$(RUNNIX_VER) RUNNIX_CAT:=zcat RUNFS_DIR:=$(BUILD_DIR)/runfs This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-07 17:54:31
|
Revision: 7939 http://sourceforge.net/p/astlinux/code/7939 Author: abelbeck Date: 2016-11-07 17:54:29 +0000 (Mon, 07 Nov 2016) Log Message: ----------- update ChangeLog Modified Paths: -------------- branches/1.0/docs/ChangeLog.txt Modified: branches/1.0/docs/ChangeLog.txt =================================================================== --- branches/1.0/docs/ChangeLog.txt 2016-11-07 17:49:50 UTC (rev 7938) +++ branches/1.0/docs/ChangeLog.txt 2016-11-07 17:54:29 UTC (rev 7939) @@ -19,10 +19,14 @@ -- sqlite, version bump to 3.15.1 +-- libxml2, security fixes: CVE-2016-5131, CVE-2016-4658 + -- libusb, version bump to 1.0.21 -- nano, version bump to 2.7.1 +-- reload-blocklist-netset (optional CRON script), add 'firehol_webclient' blocklist support. + -- ca-certificates, update trusted root certificates 2016-11-02 -- Time Zone Database update, tzdata2016i and php-timezonedb-2016.9 @@ -44,6 +48,8 @@ -- tcpdump, version bump to 4.8.1 +-- stunnel, version bump to 5.37 + -- iproute2 (ip, tc, bridge, etc.) version bump to version 3.16.0, now including the 'bridge' utility. No longer use 'brctl' for managing bridge interfaces, instead use iproute2 tools. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-07 17:49:52
|
Revision: 7938 http://sourceforge.net/p/astlinux/code/7938 Author: abelbeck Date: 2016-11-07 17:49:50 +0000 (Mon, 07 Nov 2016) Log Message: ----------- reload-blocklist-netset, add 'firehol_webclient' blocklist support Modified Paths: -------------- branches/1.0/package/arnofw/reload-blocklist-netset Modified: branches/1.0/package/arnofw/reload-blocklist-netset =================================================================== --- branches/1.0/package/arnofw/reload-blocklist-netset 2016-11-07 17:22:42 UTC (rev 7937) +++ branches/1.0/package/arnofw/reload-blocklist-netset 2016-11-07 17:49:50 UTC (rev 7938) @@ -31,6 +31,7 @@ firehol_level1: Blacklist composed from IP lists, providing maximum protection with minimum false positives. firehol_level2: Blacklist that track attacks, during about the last 48 hours. firehol_level3: Blacklist that track attacks, spyware, viruses, reported or detected in the last 30 days. + firehol_webclient: Blacklist made from blocklists that a web client should never talk to. Use with firehol_level1. voipbl: VoIP Blacklist - sponsored by ScopServ International - http://www.voipbl.org/ spamhaus_drop: Spamhaus DROP (Don't Route Or Peer), consisting of netblocks that are "hijacked" by cyber-crime operations. spamhaus_edrop: Spamhaus EDROP is an extension of the DROP list that includes suballocated netblocks. @@ -62,6 +63,11 @@ ALT_URL="" AGE=3600 ;; + firehol_webclient) + URL="https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_webclient.netset" + ALT_URL="" + AGE=3600 + ;; voipbl) URL="http://www.voipbl.org/update/" ALT_URL="https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/voipbl.netset" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-07 17:22:45
|
Revision: 7937 http://sourceforge.net/p/astlinux/code/7937 Author: abelbeck Date: 2016-11-07 17:22:42 +0000 (Mon, 07 Nov 2016) Log Message: ----------- More upstream Buildroot fakeroot fixes, Bail out on errors in fakeroot script Ref: https://git.buildroot.net/buildroot/commit/fs/common.mk?id=4ef7ec585c904f3c68af391e220534981ded2bab Ref: https://git.buildroot.net/buildroot/commit/fs/common.mk?id=6b577b3c3adf7de2582985160ab2906c8dabf22c Ref: https://git.buildroot.net/buildroot/commit/fs/common.mk?id=974e83a8f9a1c9054b0d702d63b85557388d4b7d Modified Paths: -------------- branches/1.0/fs/common.mk branches/1.0/fs/iso9660/iso9660.mk Modified: branches/1.0/fs/common.mk =================================================================== --- branches/1.0/fs/common.mk 2016-11-07 16:42:21 UTC (rev 7936) +++ branches/1.0/fs/common.mk 2016-11-07 17:22:42 UTC (rev 7937) @@ -46,8 +46,8 @@ $(foreach hook,$(ROOTFS_$(2)_PRE_GEN_HOOKS),$(call $(hook))$(sep)) rm -f $$@ rm -f $(FAKEROOT_SCRIPT) - touch $(BUILD_DIR)/.fakeroot.00000 - cat $(BUILD_DIR)/.fakeroot* > $(FAKEROOT_SCRIPT) + echo '#!/bin/sh' > $$(FAKEROOT_SCRIPT) + echo 'set -e' >> $$(FAKEROOT_SCRIPT) echo "chown -R 0:0 $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT) ifneq ($(ROOTFS_DEVICE_TABLES),) cat $(ROOTFS_DEVICE_TABLES) > $(FULL_DEVICE_TABLE) Modified: branches/1.0/fs/iso9660/iso9660.mk =================================================================== --- branches/1.0/fs/iso9660/iso9660.mk 2016-11-07 16:42:21 UTC (rev 7936) +++ branches/1.0/fs/iso9660/iso9660.mk 2016-11-07 17:22:42 UTC (rev 7937) @@ -25,8 +25,8 @@ cp $(BINARIES_DIR)/rootfs.ext2 $(ISO9660_TARGET_DIR)/initrd # Use fakeroot to pretend all target binaries are owned by root rm -f $(FAKEROOT_SCRIPT) - touch $(BUILD_DIR)/.fakeroot.00000 - cat $(BUILD_DIR)/.fakeroot* > $(FAKEROOT_SCRIPT) + echo '#!/bin/sh' > $$(FAKEROOT_SCRIPT) + echo 'set -e' >> $$(FAKEROOT_SCRIPT) echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(FAKEROOT_SCRIPT) # Use fakeroot so mkisofs believes the previous fakery echo "$(HOST_DIR)/usr/bin/genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot " \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-07 16:42:23
|
Revision: 7936 http://sourceforge.net/p/astlinux/code/7936 Author: abelbeck Date: 2016-11-07 16:42:21 +0000 (Mon, 07 Nov 2016) Log Message: ----------- stunnel, version bump to 5.37 Modified Paths: -------------- branches/1.0/package/stunnel/stunnel.mk Modified: branches/1.0/package/stunnel/stunnel.mk =================================================================== --- branches/1.0/package/stunnel/stunnel.mk 2016-11-06 22:45:27 UTC (rev 7935) +++ branches/1.0/package/stunnel/stunnel.mk 2016-11-07 16:42:21 UTC (rev 7936) @@ -4,7 +4,7 @@ # ############################################################# -STUNNEL_VERSION = 5.36 +STUNNEL_VERSION = 5.37 STUNNEL_SITE = http://www.usenix.org.uk/mirrors/stunnel/archive/5.x STUNNEL_DEPENDENCIES = openssl This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-06 22:45:29
|
Revision: 7935 http://sourceforge.net/p/astlinux/code/7935 Author: abelbeck Date: 2016-11-06 22:45:27 +0000 (Sun, 06 Nov 2016) Log Message: ----------- build system, host-makedevs, implement upstream Buildroot fixes, one 'mknod' call added since we are using fakeroot Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=ab1b6f7df4355244dfc54b877889ff7a3cde02a0 Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=c85cd189dc1ded92b78c5968860ff447ec9815ad Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2016-11-06 18:13:41 UTC (rev 7934) +++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 22:45:27 UTC (rev 7935) @@ -500,6 +500,9 @@ } else { dev_t rdev; + unsigned i; + char *full_name_inc; + struct stat st; if (type == 'p') { mode |= S_IFIFO; @@ -515,43 +518,38 @@ goto loop; } - if (count > 0) { - int i; - char *full_name_inc; - - full_name_inc = xmalloc(strlen(full_name) + 8); - for (i = 0; i < count; i++) { - sprintf(full_name_inc, "%s%d", full_name, start + i); - rdev = makedev(major, minor + i * increment); - if (mknod(full_name_inc, mode, rdev) == -1) { - bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc); + full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2); + if (count) + count--; + for (i = start; i <= start + count; i++) { + sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); + rdev = makedev(major, minor + (i - start) * increment); + mknod(full_name_inc, mode, rdev); /* mknod required if using fakeroot */ + if (stat(full_name_inc, &st) == 0) { + if ((mode & S_IFMT) != (st.st_mode & S_IFMT)) { + bb_error_msg("line %d: node %s exists but is of wrong file type", linenum, full_name_inc); ret = EXIT_FAILURE; + continue; } - else if (chown(full_name_inc, uid, gid) == -1) { - bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc); + if (st.st_rdev != rdev) { + bb_error_msg("line %d: node %s exists but is wrong device number", linenum, full_name_inc); ret = EXIT_FAILURE; + continue; } - if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){ - bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc); - ret = EXIT_FAILURE; - } - } - free(full_name_inc); - } else { - rdev = makedev(major, minor); - if (mknod(full_name, mode, rdev) == -1) { - bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name); + } else if (mknod(full_name_inc, mode, rdev) < 0) { + bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); ret = EXIT_FAILURE; + continue; } - else if (chown(full_name, uid, gid) == -1) { - bb_perror_msg("line %d: chown failed for %s", linenum, full_name); + if (chown(full_name_inc, uid, gid) < 0) { + bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc); ret = EXIT_FAILURE; - } - if ((mode != -1) && (chmod(full_name, mode) < 0)){ - bb_perror_msg("line %d: chmod failed for %s", linenum, full_name); + } else if (chmod(full_name_inc, mode) < 0) { + bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc); ret = EXIT_FAILURE; } } + free(full_name_inc); } loop: free(line); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-06 18:13:44
|
Revision: 7934 http://sourceforge.net/p/astlinux/code/7934 Author: abelbeck Date: 2016-11-06 18:13:41 +0000 (Sun, 06 Nov 2016) Log Message: ----------- revert r7933 Revision Links: -------------- http://sourceforge.net/p/astlinux/code/7933 Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2016-11-06 14:13:15 UTC (rev 7933) +++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 18:13:41 UTC (rev 7934) @@ -500,8 +500,6 @@ } else { dev_t rdev; - unsigned i; - char *full_name_inc; if (type == 'p') { mode |= S_IFIFO; @@ -517,24 +515,43 @@ goto loop; } - full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2); - if (count) - count--; - for (i = start; i <= start + count; i++) { - sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); - rdev = makedev(major, minor + (i - start) * increment); - if (mknod(full_name_inc, mode, rdev) < 0) { - bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); + if (count > 0) { + int i; + char *full_name_inc; + + full_name_inc = xmalloc(strlen(full_name) + 8); + for (i = 0; i < count; i++) { + sprintf(full_name_inc, "%s%d", full_name, start + i); + rdev = makedev(major, minor + i * increment); + if (mknod(full_name_inc, mode, rdev) == -1) { + bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc); + ret = EXIT_FAILURE; + } + else if (chown(full_name_inc, uid, gid) == -1) { + bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc); + ret = EXIT_FAILURE; + } + if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){ + bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc); + ret = EXIT_FAILURE; + } + } + free(full_name_inc); + } else { + rdev = makedev(major, minor); + if (mknod(full_name, mode, rdev) == -1) { + bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name); ret = EXIT_FAILURE; - } else if (chown(full_name_inc, uid, gid) < 0) { - bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc); + } + else if (chown(full_name, uid, gid) == -1) { + bb_perror_msg("line %d: chown failed for %s", linenum, full_name); ret = EXIT_FAILURE; - } else if (chmod(full_name_inc, mode) < 0) { - bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc); + } + if ((mode != -1) && (chmod(full_name, mode) < 0)){ + bb_perror_msg("line %d: chmod failed for %s", linenum, full_name); ret = EXIT_FAILURE; } } - free(full_name_inc); } loop: free(line); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-06 14:13:17
|
Revision: 7933 http://sourceforge.net/p/astlinux/code/7933 Author: abelbeck Date: 2016-11-06 14:13:15 +0000 (Sun, 06 Nov 2016) Log Message: ----------- build system, host-makedevs, resync device creation with upstream busybox Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=ab1b6f7df4355244dfc54b877889ff7a3cde02a0 Modified Paths: -------------- branches/1.0/package/makedevs/makedevs.c Modified: branches/1.0/package/makedevs/makedevs.c =================================================================== --- branches/1.0/package/makedevs/makedevs.c 2016-11-06 13:53:32 UTC (rev 7932) +++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 14:13:15 UTC (rev 7933) @@ -500,6 +500,8 @@ } else { dev_t rdev; + unsigned i; + char *full_name_inc; if (type == 'p') { mode |= S_IFIFO; @@ -515,43 +517,24 @@ goto loop; } - if (count > 0) { - int i; - char *full_name_inc; - - full_name_inc = xmalloc(strlen(full_name) + 8); - for (i = 0; i < count; i++) { - sprintf(full_name_inc, "%s%d", full_name, start + i); - rdev = makedev(major, minor + i * increment); - if (mknod(full_name_inc, mode, rdev) == -1) { - bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc); - ret = EXIT_FAILURE; - } - else if (chown(full_name_inc, uid, gid) == -1) { - bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc); - ret = EXIT_FAILURE; - } - if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){ - bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc); - ret = EXIT_FAILURE; - } - } - free(full_name_inc); - } else { - rdev = makedev(major, minor); - if (mknod(full_name, mode, rdev) == -1) { - bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name); + full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2); + if (count) + count--; + for (i = start; i <= start + count; i++) { + sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); + rdev = makedev(major, minor + (i - start) * increment); + if (mknod(full_name_inc, mode, rdev) < 0) { + bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); ret = EXIT_FAILURE; - } - else if (chown(full_name, uid, gid) == -1) { - bb_perror_msg("line %d: chown failed for %s", linenum, full_name); + } else if (chown(full_name_inc, uid, gid) < 0) { + bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc); ret = EXIT_FAILURE; - } - if ((mode != -1) && (chmod(full_name, mode) < 0)){ - bb_perror_msg("line %d: chmod failed for %s", linenum, full_name); + } else if (chmod(full_name_inc, mode) < 0) { + bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc); ret = EXIT_FAILURE; } } + free(full_name_inc); } loop: free(line); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-06 13:53:33
|
Revision: 7932 http://sourceforge.net/p/astlinux/code/7932 Author: abelbeck Date: 2016-11-06 13:53:32 +0000 (Sun, 06 Nov 2016) Log Message: ----------- libxml2, add upstream security fixes: CVE-2016-5131, CVE-2016-4658 Added Paths: ----------- branches/1.0/package/libxml2/libxml2-0001-Fix-XPointer-paths-beginning-with-range-to.patch branches/1.0/package/libxml2/libxml2-0002-Disallow-namespace-nodes-in-XPointer-ranges.patch Added: branches/1.0/package/libxml2/libxml2-0001-Fix-XPointer-paths-beginning-with-range-to.patch =================================================================== --- branches/1.0/package/libxml2/libxml2-0001-Fix-XPointer-paths-beginning-with-range-to.patch (rev 0) +++ branches/1.0/package/libxml2/libxml2-0001-Fix-XPointer-paths-beginning-with-range-to.patch 2016-11-06 13:53:32 UTC (rev 7932) @@ -0,0 +1,178 @@ +From 9ab01a277d71f54d3143c2cf333c5c2e9aaedd9e Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wel...@ae...> +Date: Tue, 28 Jun 2016 14:22:23 +0200 +Subject: [PATCH] Fix XPointer paths beginning with range-to + +The old code would invoke the broken xmlXPtrRangeToFunction. range-to +isn't really a function but a special kind of location step. Remove +this function and always handle range-to in the XPath code. + +The old xmlXPtrRangeToFunction could also be abused to trigger a +use-after-free error with the potential for remote code execution. + +Found with afl-fuzz. + +Fixes CVE-2016-5131. + +Signed-off-by: Baruch Siach <ba...@tk...> +--- +Patch status: upstream commit 9ab01a277d7 + + result/XPath/xptr/vidbase | 13 ++++++++ + test/XPath/xptr/vidbase | 1 + + xpath.c | 7 ++++- + xpointer.c | 76 ++++------------------------------------------- + 4 files changed, 26 insertions(+), 71 deletions(-) + +diff --git a/result/XPath/xptr/vidbase b/result/XPath/xptr/vidbase +index 8b9e92d66d97..f19193e70edb 100644 +--- a/result/XPath/xptr/vidbase ++++ b/result/XPath/xptr/vidbase +@@ -17,3 +17,16 @@ Object is a Location Set: + To node + ELEMENT p + ++ ++======================== ++Expression: xpointer(range-to(id('chapter2'))) ++Object is a Location Set: ++1 : Object is a range : ++ From node ++ / ++ To node ++ ELEMENT chapter ++ ATTRIBUTE id ++ TEXT ++ content=chapter2 ++ +diff --git a/test/XPath/xptr/vidbase b/test/XPath/xptr/vidbase +index b1463830570a..884b1065d7fd 100644 +--- a/test/XPath/xptr/vidbase ++++ b/test/XPath/xptr/vidbase +@@ -1,2 +1,3 @@ + xpointer(id('chapter1')/p) + xpointer(id('chapter1')/p[1]/range-to(following-sibling::p[2])) ++xpointer(range-to(id('chapter2'))) +diff --git a/xpath.c b/xpath.c +index d992841ef0c2..5a01b1b399a2 100644 +--- a/xpath.c ++++ b/xpath.c +@@ -10691,13 +10691,18 @@ xmlXPathCompPathExpr(xmlXPathParserContextPtr ctxt) { + lc = 1; + break; + } else if ((NXT(len) == '(')) { +- /* Note Type or Function */ ++ /* Node Type or Function */ + if (xmlXPathIsNodeType(name)) { + #ifdef DEBUG_STEP + xmlGenericError(xmlGenericErrorContext, + "PathExpr: Type search\n"); + #endif + lc = 1; ++#ifdef LIBXML_XPTR_ENABLED ++ } else if (ctxt->xptr && ++ xmlStrEqual(name, BAD_CAST "range-to")) { ++ lc = 1; ++#endif + } else { + #ifdef DEBUG_STEP + xmlGenericError(xmlGenericErrorContext, +diff --git a/xpointer.c b/xpointer.c +index 676c5105837a..d74174a318f1 100644 +--- a/xpointer.c ++++ b/xpointer.c +@@ -1332,8 +1332,6 @@ xmlXPtrNewContext(xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin) { + ret->here = here; + ret->origin = origin; + +- xmlXPathRegisterFunc(ret, (xmlChar *)"range-to", +- xmlXPtrRangeToFunction); + xmlXPathRegisterFunc(ret, (xmlChar *)"range", + xmlXPtrRangeFunction); + xmlXPathRegisterFunc(ret, (xmlChar *)"range-inside", +@@ -2243,76 +2241,14 @@ xmlXPtrRangeInsideFunction(xmlXPathParserContextPtr ctxt, int nargs) { + * @nargs: the number of args + * + * Implement the range-to() XPointer function ++ * ++ * Obsolete. range-to is not a real function but a special type of location ++ * step which is handled in xpath.c. + */ + void +-xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, int nargs) { +- xmlXPathObjectPtr range; +- const xmlChar *cur; +- xmlXPathObjectPtr res, obj; +- xmlXPathObjectPtr tmp; +- xmlLocationSetPtr newset = NULL; +- xmlNodeSetPtr oldset; +- int i; +- +- if (ctxt == NULL) return; +- CHECK_ARITY(1); +- /* +- * Save the expression pointer since we will have to evaluate +- * it multiple times. Initialize the new set. +- */ +- CHECK_TYPE(XPATH_NODESET); +- obj = valuePop(ctxt); +- oldset = obj->nodesetval; +- ctxt->context->node = NULL; +- +- cur = ctxt->cur; +- newset = xmlXPtrLocationSetCreate(NULL); +- +- for (i = 0; i < oldset->nodeNr; i++) { +- ctxt->cur = cur; +- +- /* +- * Run the evaluation with a node list made of a single item +- * in the nodeset. +- */ +- ctxt->context->node = oldset->nodeTab[i]; +- tmp = xmlXPathNewNodeSet(ctxt->context->node); +- valuePush(ctxt, tmp); +- +- xmlXPathEvalExpr(ctxt); +- CHECK_ERROR; +- +- /* +- * The result of the evaluation need to be tested to +- * decided whether the filter succeeded or not +- */ +- res = valuePop(ctxt); +- range = xmlXPtrNewRangeNodeObject(oldset->nodeTab[i], res); +- if (range != NULL) { +- xmlXPtrLocationSetAdd(newset, range); +- } +- +- /* +- * Cleanup +- */ +- if (res != NULL) +- xmlXPathFreeObject(res); +- if (ctxt->value == tmp) { +- res = valuePop(ctxt); +- xmlXPathFreeObject(res); +- } +- +- ctxt->context->node = NULL; +- } +- +- /* +- * The result is used as the new evaluation set. +- */ +- xmlXPathFreeObject(obj); +- ctxt->context->node = NULL; +- ctxt->context->contextSize = -1; +- ctxt->context->proximityPosition = -1; +- valuePush(ctxt, xmlXPtrWrapLocationSet(newset)); ++xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, ++ int nargs ATTRIBUTE_UNUSED) { ++ XP_ERROR(XPATH_EXPR_ERROR); + } + + /** +-- +2.10.2 + Added: branches/1.0/package/libxml2/libxml2-0002-Disallow-namespace-nodes-in-XPointer-ranges.patch =================================================================== --- branches/1.0/package/libxml2/libxml2-0002-Disallow-namespace-nodes-in-XPointer-ranges.patch (rev 0) +++ branches/1.0/package/libxml2/libxml2-0002-Disallow-namespace-nodes-in-XPointer-ranges.patch 2016-11-06 13:53:32 UTC (rev 7932) @@ -0,0 +1,253 @@ +From c1d1f7121194036608bf555f08d3062a36fd344b Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wel...@ae...> +Date: Tue, 28 Jun 2016 18:34:52 +0200 +Subject: [PATCH] Disallow namespace nodes in XPointer ranges + +Namespace nodes must be copied to avoid use-after-free errors. +But they don't necessarily have a physical representation in a +document, so simply disallow them in XPointer ranges. + +Found with afl-fuzz. + +Fixes CVE-2016-4658. + +Signed-off-by: Baruch Siach <ba...@tk...> +--- +Patch status: upstream commit c1d1f712119403 + + xpointer.c | 149 +++++++++++++++++++++++-------------------------------------- + 1 file changed, 56 insertions(+), 93 deletions(-) + +diff --git a/xpointer.c b/xpointer.c +index a7b03fbdae16..694d120e2e0b 100644 +--- a/xpointer.c ++++ b/xpointer.c +@@ -320,6 +320,45 @@ xmlXPtrRangesEqual(xmlXPathObjectPtr range1, xmlXPathObjectPtr range2) { + } + + /** ++ * xmlXPtrNewRangeInternal: ++ * @start: the starting node ++ * @startindex: the start index ++ * @end: the ending point ++ * @endindex: the ending index ++ * ++ * Internal function to create a new xmlXPathObjectPtr of type range ++ * ++ * Returns the newly created object. ++ */ ++static xmlXPathObjectPtr ++xmlXPtrNewRangeInternal(xmlNodePtr start, int startindex, ++ xmlNodePtr end, int endindex) { ++ xmlXPathObjectPtr ret; ++ ++ /* ++ * Namespace nodes must be copied (see xmlXPathNodeSetDupNs). ++ * Disallow them for now. ++ */ ++ if ((start != NULL) && (start->type == XML_NAMESPACE_DECL)) ++ return(NULL); ++ if ((end != NULL) && (end->type == XML_NAMESPACE_DECL)) ++ return(NULL); ++ ++ ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject)); ++ if (ret == NULL) { ++ xmlXPtrErrMemory("allocating range"); ++ return(NULL); ++ } ++ memset(ret, 0, sizeof(xmlXPathObject)); ++ ret->type = XPATH_RANGE; ++ ret->user = start; ++ ret->index = startindex; ++ ret->user2 = end; ++ ret->index2 = endindex; ++ return(ret); ++} ++ ++/** + * xmlXPtrNewRange: + * @start: the starting node + * @startindex: the start index +@@ -344,17 +383,7 @@ xmlXPtrNewRange(xmlNodePtr start, int startindex, + if (endindex < 0) + return(NULL); + +- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject)); +- if (ret == NULL) { +- xmlXPtrErrMemory("allocating range"); +- return(NULL); +- } +- memset(ret, 0 , (size_t) sizeof(xmlXPathObject)); +- ret->type = XPATH_RANGE; +- ret->user = start; +- ret->index = startindex; +- ret->user2 = end; +- ret->index2 = endindex; ++ ret = xmlXPtrNewRangeInternal(start, startindex, end, endindex); + xmlXPtrRangeCheckOrder(ret); + return(ret); + } +@@ -381,17 +410,8 @@ xmlXPtrNewRangePoints(xmlXPathObjectPtr start, xmlXPathObjectPtr end) { + if (end->type != XPATH_POINT) + return(NULL); + +- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject)); +- if (ret == NULL) { +- xmlXPtrErrMemory("allocating range"); +- return(NULL); +- } +- memset(ret, 0 , (size_t) sizeof(xmlXPathObject)); +- ret->type = XPATH_RANGE; +- ret->user = start->user; +- ret->index = start->index; +- ret->user2 = end->user; +- ret->index2 = end->index; ++ ret = xmlXPtrNewRangeInternal(start->user, start->index, end->user, ++ end->index); + xmlXPtrRangeCheckOrder(ret); + return(ret); + } +@@ -416,17 +436,7 @@ xmlXPtrNewRangePointNode(xmlXPathObjectPtr start, xmlNodePtr end) { + if (start->type != XPATH_POINT) + return(NULL); + +- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject)); +- if (ret == NULL) { +- xmlXPtrErrMemory("allocating range"); +- return(NULL); +- } +- memset(ret, 0 , (size_t) sizeof(xmlXPathObject)); +- ret->type = XPATH_RANGE; +- ret->user = start->user; +- ret->index = start->index; +- ret->user2 = end; +- ret->index2 = -1; ++ ret = xmlXPtrNewRangeInternal(start->user, start->index, end, -1); + xmlXPtrRangeCheckOrder(ret); + return(ret); + } +@@ -453,17 +463,7 @@ xmlXPtrNewRangeNodePoint(xmlNodePtr start, xmlXPathObjectPtr end) { + if (end->type != XPATH_POINT) + return(NULL); + +- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject)); +- if (ret == NULL) { +- xmlXPtrErrMemory("allocating range"); +- return(NULL); +- } +- memset(ret, 0 , (size_t) sizeof(xmlXPathObject)); +- ret->type = XPATH_RANGE; +- ret->user = start; +- ret->index = -1; +- ret->user2 = end->user; +- ret->index2 = end->index; ++ ret = xmlXPtrNewRangeInternal(start, -1, end->user, end->index); + xmlXPtrRangeCheckOrder(ret); + return(ret); + } +@@ -486,17 +486,7 @@ xmlXPtrNewRangeNodes(xmlNodePtr start, xmlNodePtr end) { + if (end == NULL) + return(NULL); + +- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject)); +- if (ret == NULL) { +- xmlXPtrErrMemory("allocating range"); +- return(NULL); +- } +- memset(ret, 0 , (size_t) sizeof(xmlXPathObject)); +- ret->type = XPATH_RANGE; +- ret->user = start; +- ret->index = -1; +- ret->user2 = end; +- ret->index2 = -1; ++ ret = xmlXPtrNewRangeInternal(start, -1, end, -1); + xmlXPtrRangeCheckOrder(ret); + return(ret); + } +@@ -516,17 +506,7 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) { + if (start == NULL) + return(NULL); + +- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject)); +- if (ret == NULL) { +- xmlXPtrErrMemory("allocating range"); +- return(NULL); +- } +- memset(ret, 0 , (size_t) sizeof(xmlXPathObject)); +- ret->type = XPATH_RANGE; +- ret->user = start; +- ret->index = -1; +- ret->user2 = NULL; +- ret->index2 = -1; ++ ret = xmlXPtrNewRangeInternal(start, -1, NULL, -1); + return(ret); + } + +@@ -541,6 +521,8 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) { + */ + xmlXPathObjectPtr + xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) { ++ xmlNodePtr endNode; ++ int endIndex; + xmlXPathObjectPtr ret; + + if (start == NULL) +@@ -549,7 +531,12 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) { + return(NULL); + switch (end->type) { + case XPATH_POINT: ++ endNode = end->user; ++ endIndex = end->index; ++ break; + case XPATH_RANGE: ++ endNode = end->user2; ++ endIndex = end->index2; + break; + case XPATH_NODESET: + /* +@@ -557,39 +544,15 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) { + */ + if (end->nodesetval->nodeNr <= 0) + return(NULL); ++ endNode = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1]; ++ endIndex = -1; + break; + default: + /* TODO */ + return(NULL); + } + +- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject)); +- if (ret == NULL) { +- xmlXPtrErrMemory("allocating range"); +- return(NULL); +- } +- memset(ret, 0 , (size_t) sizeof(xmlXPathObject)); +- ret->type = XPATH_RANGE; +- ret->user = start; +- ret->index = -1; +- switch (end->type) { +- case XPATH_POINT: +- ret->user2 = end->user; +- ret->index2 = end->index; +- break; +- case XPATH_RANGE: +- ret->user2 = end->user2; +- ret->index2 = end->index2; +- break; +- case XPATH_NODESET: { +- ret->user2 = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1]; +- ret->index2 = -1; +- break; +- } +- default: +- STRANGE +- return(NULL); +- } ++ ret = xmlXPtrNewRangeInternal(start, -1, endNode, endIndex); + xmlXPtrRangeCheckOrder(ret); + return(ret); + } +-- +2.10.2 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-05 17:22:23
|
Revision: 7931 http://sourceforge.net/p/astlinux/code/7931 Author: abelbeck Date: 2016-11-05 17:22:21 +0000 (Sat, 05 Nov 2016) Log Message: ----------- update ChangeLog Modified Paths: -------------- branches/1.0/docs/ChangeLog.txt Modified: branches/1.0/docs/ChangeLog.txt =================================================================== --- branches/1.0/docs/ChangeLog.txt 2016-11-05 17:14:41 UTC (rev 7930) +++ branches/1.0/docs/ChangeLog.txt 2016-11-05 17:22:21 UTC (rev 7931) @@ -51,7 +51,7 @@ ** Asterisk --- Asterisk 11.23.1 (no change) and 13.11.2 (no change) +-- Asterisk 11.24.1 (version bump) and 13.12.1 (version bump) -- DAHDI, dahdi-linux 2.8.0.1 (no change) and dahdi-tools 2.8.0 (no change) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-05 17:14:43
|
Revision: 7930 http://sourceforge.net/p/astlinux/code/7930 Author: abelbeck Date: 2016-11-05 17:14:41 +0000 (Sat, 05 Nov 2016) Log Message: ----------- asterisk, version bump to 11.24.1 and 13.12.1 w/pjsip patches Modified Paths: -------------- branches/1.0/package/asterisk/asterisk-11-configure-cross-fix.patch branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch branches/1.0/package/asterisk/asterisk-11-make-clean-fix.patch branches/1.0/package/asterisk/asterisk-11-voicemail-multiple-recipients.patch branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch branches/1.0/package/asterisk/asterisk.mk branches/1.0/package/pjsip/asterisk-config_site.h Added Paths: ----------- branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch Modified: branches/1.0/package/asterisk/asterisk-11-configure-cross-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-configure-cross-fix.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-11-configure-cross-fix.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,6 +1,6 @@ ---- asterisk-1.8.25.0/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 -+++ asterisk-1.8.25.0/configure.ac 2014-01-24 16:55:14.000000000 -0600 -@@ -2473,11 +2473,13 @@ +--- asterisk-11/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 ++++ asterisk-11/configure.ac 2014-01-24 16:55:14.000000000 -0600 +@@ -2462,11 +2462,13 @@ AC_OUTPUT ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2 Modified: branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,6 +1,6 @@ ---- asterisk-11.17.1/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 -+++ asterisk-11.17.1/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 -@@ -16816,7 +16816,7 @@ +--- asterisk-11/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 ++++ asterisk-11/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 +@@ -16817,7 +16817,7 @@ } if (!force) { Modified: branches/1.0/package/asterisk/asterisk-11-make-clean-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-make-clean-fix.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-11-make-clean-fix.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,5 +1,5 @@ ---- asterisk-11.23.1/Makefile.orig 2016-10-09 17:19:53.204176413 -0500 -+++ asterisk-11.23.1/Makefile 2016-10-09 17:21:11.339716525 -0500 +--- asterisk-11/Makefile.orig 2016-10-09 17:19:53.204176413 -0500 ++++ asterisk-11/Makefile 2016-10-09 17:21:11.339716525 -0500 @@ -98,8 +98,8 @@ export LDCONFIG_FLAGS export PYTHON Modified: branches/1.0/package/asterisk/asterisk-11-voicemail-multiple-recipients.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-voicemail-multiple-recipients.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-11-voicemail-multiple-recipients.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,5 +1,5 @@ ---- asterisk-11.16.0/apps/app_voicemail.c.orig 2015-01-23 08:51:03.000000000 -0600 -+++ asterisk-11.16.0/apps/app_voicemail.c 2015-02-10 09:58:04.000000000 -0600 +--- asterisk-11/apps/app_voicemail.c.orig 2015-01-23 08:51:03.000000000 -0600 ++++ asterisk-11/apps/app_voicemail.c 2015-02-10 09:58:04.000000000 -0600 @@ -753,7 +753,7 @@ char mailbox[AST_MAX_EXTENSION]; /*!< Mailbox id, unique within vm context */ char password[80]; /*!< Secret pin code, numbers only */ @@ -145,7 +145,7 @@ } if (stringp && (s = strsep(&stringp, ","))) { ast_copy_string(vmu->pager, s, sizeof(vmu->pager)); -@@ -14084,7 +14100,7 @@ +@@ -14088,7 +14105,7 @@ } populate_defaults(vmu); Modified: branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-13-configure-menuselect-cross-fix.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,6 +1,6 @@ ---- asterisk-13.1.0/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 -+++ asterisk-13.1.0/configure.ac 2014-01-24 16:55:14.000000000 -0600 -@@ -2625,11 +2625,13 @@ +--- asterisk-13/configure.ac.orig 2014-01-24 16:52:23.000000000 -0600 ++++ asterisk-13/configure.ac 2014-01-24 16:55:14.000000000 -0600 +@@ -2652,11 +2652,13 @@ AC_OUTPUT ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2 Modified: branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk-13-extension-changed-verbosity-chan_sip.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -1,6 +1,6 @@ ---- asterisk-11.17.1/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 -+++ asterisk-11.17.1/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 -@@ -17336,7 +17336,7 @@ +--- asterisk-13/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 ++++ asterisk-13/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 +@@ -17358,7 +17358,7 @@ } if (!force) { Added: branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch (rev 0) +++ branches/1.0/package/asterisk/asterisk-13-upstream-chan_sip-revert-lastrtprx-fix.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,17 @@ +X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=blobdiff_plain;f=channels%2Fchan_sip.c;h=b661f0de227ff5023155faf7181892b28699a519;hp=b6b4cc86e50c7eb36d26abb0620f0f5c3fbb09e0;hb=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4;hpb=57a9797e0ac51eae3b8f3254627646b9698a60d2 + +diff --git a/channels/chan_sip.c b/channels/chan_sip.c +index b6b4cc8..b661f0d 100644 +--- a/channels/chan_sip.c ++++ b/channels/chan_sip.c +@@ -8628,9 +8628,7 @@ static struct ast_frame *sip_read(struct ast_channel *ast) + + sip_pvt_lock(p); + fr = sip_rtp_read(ast, p, &faxdetected); +- if (fr && fr->frametype != AST_FRAME_NULL) { +- p->lastrtprx = time(NULL); +- } ++ p->lastrtprx = time(NULL); + + /* If we detect a CNG tone and fax detection is enabled then send us off to the fax extension */ + if (faxdetected && ast_test_flag(&p->flags[1], SIP_PAGE2_FAX_DETECT_CNG)) { Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/asterisk/asterisk.mk 2016-11-05 17:14:41 UTC (rev 7930) @@ -4,10 +4,10 @@ # ############################################################## ifeq ($(BR2_PACKAGE_ASTERISK_v11),y) -ASTERISK_VERSION := 11.23.1 +ASTERISK_VERSION := 11.24.1 else ifeq ($(BR2_PACKAGE_ASTERISK_v13),y) -ASTERISK_VERSION := 13.11.2 +ASTERISK_VERSION := 13.12.1 else ASTERISK_VERSION := 15.0.0 endif @@ -352,7 +352,6 @@ rm -f $(TARGET_DIR)/usr/share/snmp/mibs/ASTERISK-MIB.txt rm -f $(TARGET_DIR)/usr/share/snmp/mibs/DIGIUM-MIB.txt -$(MAKE) -C $(ASTERISK_DIR) clean - rm -rf $(BUILD_DIR)/asterisk rm -rf $(BUILD_DIR)/asterisk-$(ASTERISK_VERSION) asterisk-sounds-clean: Modified: branches/1.0/package/pjsip/asterisk-config_site.h =================================================================== --- branches/1.0/package/pjsip/asterisk-config_site.h 2016-11-04 22:47:37 UTC (rev 7929) +++ branches/1.0/package/pjsip/asterisk-config_site.h 2016-11-05 17:14:41 UTC (rev 7930) @@ -4,6 +4,14 @@ #include <sys/select.h> +/* + * Defining PJMEDIA_HAS_SRTP to 0 does NOT disable Asterisk's ability to use srtp. + * It only disables the pjmedia srtp transport which Asterisk doesn't use. + * The reason for the disable is that while Asterisk works fine with older libsrtp + * versions, newer versions of pjproject won't compile with them. + */ +#define PJMEDIA_HAS_SRTP 0 + #define PJ_HAS_IPV6 1 #define NDEBUG 1 #define PJ_MAX_HOSTNAME (256) @@ -41,3 +49,9 @@ /* Defaults too low for WebRTC */ #define PJ_ICE_MAX_CAND 32 #define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * 2) + +/* Increase limits to allow more formats */ +#define PJMEDIA_MAX_SDP_FMT 64 +#define PJMEDIA_MAX_SDP_BANDW 4 +#define PJMEDIA_MAX_SDP_ATTR (PJMEDIA_MAX_SDP_FMT*2 + 4) +#define PJMEDIA_MAX_SDP_MEDIA 16 Added: branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0001-r5397-pjsip_generic_array_max_count.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,58 @@ +This patch updates array limit checks and docs +in pjsip_evsub_register_pkg() and pjsip_endpt_add_capability(). + +Index: pjsip/include/pjsip/sip_endpoint.h +=================================================================== +--- a/pjsip/include/pjsip/sip_endpoint.h (revision 5396) ++++ b/pjsip/include/pjsip/sip_endpoint.h (revision 5397) +@@ -583,7 +583,8 @@ + * @param hname If htype specifies PJSIP_H_OTHER, then the header name + * must be supplied in this argument. Otherwise the value + * must be set to NULL. +- * @param count The number of tags in the array. ++ * @param count The number of tags in the array. The value must not ++ * be greater than PJSIP_GENERIC_ARRAY_MAX_COUNT. + * @param tags Array of tags describing the capabilities or extensions + * to be added to the appropriate header. + * +Index: pjsip/include/pjsip-simple/evsub.h +=================================================================== +--- a/pjsip/include/pjsip-simple/evsub.h (revision 5396) ++++ b/pjsip/include/pjsip-simple/evsub.h (revision 5397) +@@ -246,7 +246,8 @@ + * registered. + * @param event_name Event package identification. + * @param expires Default subscription expiration time, in seconds. +- * @param accept_cnt Number of strings in Accept array. ++ * @param accept_cnt Number of strings in Accept array. The value must ++ * not be greater than PJSIP_GENERIC_ARRAY_MAX_COUNT. + * @param accept Array of Accept value. + * + * @return PJ_SUCCESS on success. +Index: pjsip/src/pjsip/sip_endpoint.c +=================================================================== +--- a/pjsip/src/pjsip/sip_endpoint.c (revision 5396) ++++ b/pjsip/src/pjsip/sip_endpoint.c (revision 5397) +@@ -371,6 +371,7 @@ + + /* Check arguments. */ + PJ_ASSERT_RETURN(endpt!=NULL && count>0 && tags, PJ_EINVAL); ++ PJ_ASSERT_RETURN(count <= PJSIP_GENERIC_ARRAY_MAX_COUNT, PJ_ETOOMANY); + PJ_ASSERT_RETURN(htype==PJSIP_H_ACCEPT || + htype==PJSIP_H_ALLOW || + htype==PJSIP_H_SUPPORTED, +Index: pjsip/src/pjsip-simple/evsub.c +=================================================================== +--- a/pjsip/src/pjsip-simple/evsub.c (revision 5396) ++++ b/pjsip/src/pjsip-simple/evsub.c (revision 5397) +@@ -412,7 +412,9 @@ + unsigned i; + + PJ_ASSERT_RETURN(pkg_mod && event_name, PJ_EINVAL); +- PJ_ASSERT_RETURN(accept_cnt < PJ_ARRAY_SIZE(pkg->pkg_accept->values), ++ ++ /* Make sure accept_cnt < PJ_ARRAY_SIZE(pkg->pkg_accept->values) */ ++ PJ_ASSERT_RETURN(accept_cnt <= PJSIP_GENERIC_ARRAY_MAX_COUNT, + PJ_ETOOMANY); + + /* Make sure evsub module has been initialized */ Added: branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0001-r5400-pjsip_tx_data_dec_ref.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,24 @@ +This patch fixes the issue in pjsip_tx_data_dec_ref() +when tx_data_destroy can be called more than once, +and checks if invalid value (e.g. NULL) is passed to. + +Index: pjsip/src/pjsip/sip_transport.c +=================================================================== +--- a/pjsip/src/pjsip/sip_transport.c (revision 5399) ++++ b/pjsip/src/pjsip/sip_transport.c (revision 5400) +@@ -491,8 +491,13 @@ + */ + PJ_DEF(pj_status_t) pjsip_tx_data_dec_ref( pjsip_tx_data *tdata ) + { +- pj_assert( pj_atomic_get(tdata->ref_cnt) > 0); +- if (pj_atomic_dec_and_get(tdata->ref_cnt) <= 0) { ++ pj_atomic_value_t ref_cnt; ++ ++ PJ_ASSERT_RETURN(tdata && tdata->ref_cnt, PJ_EINVAL); ++ ++ ref_cnt = pj_atomic_dec_and_get(tdata->ref_cnt); ++ pj_assert( ref_cnt >= 0); ++ if (ref_cnt == 0) { + tx_data_destroy(tdata); + return PJSIP_EBUFDESTROYED; + } else { Added: branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0002-r5435-add-pjsip_inv_session-ref_cnt.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,212 @@ +When a transport error occured on an INVITE session +the stack calls on_tsx_state_changed with new state +PJSIP_INV_STATE_DISCONNECTED and immediately destroys +the INVITE session. +At the same time this INVITE session could being processed +on another thread. This thread could use the session's +memory pools which were already freed, so we get segfault. + +This patch adds a reference counter and new functions: +pjsip_inv_add_ref and pjsip_inv_dec_ref. +The INVITE session is destroyed only when the reference +counter has reached zero. + +To avoid race condition an application should call +pjsip_inv_add_ref/pjsip_inv_dec_ref. + +Index: pjsip/include/pjsip-ua/sip_inv.h +=================================================================== +--- a/pjsip/include/pjsip-ua/sip_inv.h (revision 5434) ++++ b/pjsip/include/pjsip-ua/sip_inv.h (revision 5435) +@@ -383,6 +383,11 @@ + * Other applications that want to use these pools must understand + * that the flip-flop pool's lifetimes are synchronized to the + * SDP offer-answer negotiation. ++ * ++ * The lifetime of this session is controlled by the reference counter in this ++ * structure, which is manipulated by calling #pjsip_inv_add_ref and ++ * #pjsip_inv_dec_ref. When the reference counter has reached zero, then ++ * this session will be destroyed. + */ + struct pjsip_inv_session + { +@@ -412,6 +417,7 @@ + struct pjsip_timer *timer; /**< Session Timers. */ + pj_bool_t following_fork; /**< Internal, following + forked media? */ ++ pj_atomic_t *ref_cnt; /**< Reference counter. */ + }; + + +@@ -631,6 +637,30 @@ + + + /** ++ * Add reference counter to the INVITE session. The reference counter controls ++ * the life time of the session, ie. when the counter reaches zero, then it ++ * will be destroyed. ++ * ++ * @param inv The INVITE session. ++ * @return PJ_SUCCESS if the INVITE session reference counter ++ * was increased. ++ */ ++PJ_DECL(pj_status_t) pjsip_inv_add_ref( pjsip_inv_session *inv ); ++ ++/** ++ * Decrement reference counter of the INVITE session. ++ * When the session is no longer used, it will be destroyed and ++ * caller is informed with PJ_EGONE return status. ++ * ++ * @param inv The INVITE session. ++ * @return PJ_SUCCESS if the INVITE session reference counter ++ * was decreased. A status PJ_EGONE will be returned to ++ * inform that session is destroyed. ++ */ ++PJ_DECL(pj_status_t) pjsip_inv_dec_ref( pjsip_inv_session *inv ); ++ ++ ++/** + * Forcefully terminate and destroy INVITE session, regardless of + * the state of the session. Note that this function should only be used + * when there is failure in the INVITE session creation. After the +Index: pjsip/src/pjsip-ua/sip_inv.c +=================================================================== +--- a/pjsip/src/pjsip-ua/sip_inv.c (revision 5434) ++++ b/pjsip/src/pjsip-ua/sip_inv.c (revision 5435) +@@ -195,6 +195,65 @@ + } + + /* ++ * Add reference to INVITE session. ++ */ ++PJ_DEF(pj_status_t) pjsip_inv_add_ref( pjsip_inv_session *inv ) ++{ ++ PJ_ASSERT_RETURN(inv && inv->ref_cnt, PJ_EINVAL); ++ ++ pj_atomic_inc(inv->ref_cnt); ++ ++ return PJ_SUCCESS; ++} ++ ++static void inv_session_destroy(pjsip_inv_session *inv) ++{ ++ if (inv->last_ack) { ++ pjsip_tx_data_dec_ref(inv->last_ack); ++ inv->last_ack = NULL; ++ } ++ if (inv->invite_req) { ++ pjsip_tx_data_dec_ref(inv->invite_req); ++ inv->invite_req = NULL; ++ } ++ if (inv->pending_bye) { ++ pjsip_tx_data_dec_ref(inv->pending_bye); ++ inv->pending_bye = NULL; ++ } ++ pjsip_100rel_end_session(inv); ++ pjsip_timer_end_session(inv); ++ pjsip_dlg_dec_session(inv->dlg, &mod_inv.mod); ++ ++ /* Release the flip-flop pools */ ++ pj_pool_release(inv->pool_prov); ++ inv->pool_prov = NULL; ++ pj_pool_release(inv->pool_active); ++ inv->pool_active = NULL; ++ ++ pj_atomic_destroy(inv->ref_cnt); ++ inv->ref_cnt = NULL; ++} ++ ++/* ++ * Decrease INVITE session reference, destroy it when the reference count ++ * reaches zero. ++ */ ++PJ_DEF(pj_status_t) pjsip_inv_dec_ref( pjsip_inv_session *inv ) ++{ ++ pj_atomic_value_t ref_cnt; ++ ++ PJ_ASSERT_RETURN(inv && inv->ref_cnt, PJ_EINVAL); ++ ++ ref_cnt = pj_atomic_dec_and_get(inv->ref_cnt); ++ pj_assert( ref_cnt >= 0); ++ if (ref_cnt == 0) { ++ inv_session_destroy(inv); ++ return PJ_EGONE; ++ } ++ return PJ_SUCCESS; ++} ++ ++/* + * Set session state. + */ + static void inv_set_state(pjsip_inv_session *inv, pjsip_inv_state state, +@@ -261,27 +320,7 @@ + if (inv->state == PJSIP_INV_STATE_DISCONNECTED && + prev_state != PJSIP_INV_STATE_DISCONNECTED) + { +- if (inv->last_ack) { +- pjsip_tx_data_dec_ref(inv->last_ack); +- inv->last_ack = NULL; +- } +- if (inv->invite_req) { +- pjsip_tx_data_dec_ref(inv->invite_req); +- inv->invite_req = NULL; +- } +- if (inv->pending_bye) { +- pjsip_tx_data_dec_ref(inv->pending_bye); +- inv->pending_bye = NULL; +- } +- pjsip_100rel_end_session(inv); +- pjsip_timer_end_session(inv); +- pjsip_dlg_dec_session(inv->dlg, &mod_inv.mod); +- +- /* Release the flip-flop pools */ +- pj_pool_release(inv->pool_prov); +- inv->pool_prov = NULL; +- pj_pool_release(inv->pool_active); +- inv->pool_active = NULL; ++ pjsip_inv_dec_ref(inv); + } + } + +@@ -838,6 +877,12 @@ + inv = PJ_POOL_ZALLOC_T(dlg->pool, pjsip_inv_session); + pj_assert(inv != NULL); + ++ status = pj_atomic_create(dlg->pool, 0, &inv->ref_cnt); ++ if (status != PJ_SUCCESS) { ++ pjsip_dlg_dec_lock(dlg); ++ return status; ++ } ++ + inv->pool = dlg->pool; + inv->role = PJSIP_ROLE_UAC; + inv->state = PJSIP_INV_STATE_NULL; +@@ -881,6 +926,7 @@ + pjsip_100rel_attach(inv); + + /* Done */ ++ pjsip_inv_add_ref(inv); + *p_inv = inv; + + pjsip_dlg_dec_lock(dlg); +@@ -1471,6 +1517,12 @@ + inv = PJ_POOL_ZALLOC_T(dlg->pool, pjsip_inv_session); + pj_assert(inv != NULL); + ++ status = pj_atomic_create(dlg->pool, 0, &inv->ref_cnt); ++ if (status != PJ_SUCCESS) { ++ pjsip_dlg_dec_lock(dlg); ++ return status; ++ } ++ + inv->pool = dlg->pool; + inv->role = PJSIP_ROLE_UAS; + inv->state = PJSIP_INV_STATE_NULL; +@@ -1540,6 +1592,7 @@ + } + + /* Done */ ++ pjsip_inv_add_ref(inv); + pjsip_dlg_dec_lock(dlg); + *p_inv = inv; + Added: branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0003-r5403-pjsip_IPV6_V6ONLY.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,13 @@ +--- a/pjlib/src/pj/sock_bsd.c ++++ b/pjlib/src/pj/sock_bsd.c +@@ -539,6 +539,10 @@ + pj_sock_setsockopt(*sock, pj_SOL_SOCKET(), pj_SO_NOSIGPIPE(), + &val, sizeof(val)); + } ++ if (af != PJ_AF_INET) { /* Linux Kernel 2.4.21; June 2003 */ ++ pj_sock_setsockopt(*sock, PJ_SOL_IPV6, IPV6_V6ONLY, ++ &val, sizeof(val)); ++ } + #if defined(PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT) && \ + PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0 + if (type == pj_SOCK_DGRAM()) { Added: branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,48 @@ +From a5efddbe9151e9ad99279e59566c86f8bc27d3a9 Mon Sep 17 00:00:00 2001 +From: George Joseph <gj...@di...> +Date: Wed, 7 Sep 2016 13:10:57 -0600 +Subject: [PATCH] resolver.c: Prevent SERVFAIL from marking name server bad + +A name server that returns "Server Failure" is indicating only that +the server couldn't process that particular request. We should NOT +assume that the name server is incapable of serving other requests. + +Here's the scenario we've been encountering... + +* 2 local name servers configured in resolv.conf. +* An OPTIONS request causes a request for A and AAAA records to go out + to both nameservers. +* The A responses both come back successfully resolved. +* Because of an issue at some upstream nameserver, the AAAA responses + for that particular query come back as "SERVFAIL" from both local + name servers. +* Both local servers are marked as bad and no further queries can be + sent until the 60 second ttl expires. Only previously cached results + can be used. +* In this case, 60 seconds is just enough time for another OPTIONS + request to go out to the same host so the cycle repeats. + +We could set the bad ttl really low but that also affects REFUSED and +NOTAUTH which probably DO signal a real server issue. Besides, even +a really low bad ttl would be an issue on a pbx. +--- + pjlib-util/src/pjlib-util/resolver.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index d277e4f..540f88f 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -1384,8 +1384,7 @@ static void report_nameserver_status(pj_dns_resolver *resolver, + q_id = (pj_uint32_t)-1; + } + +- if (!pkt || rcode == PJ_DNS_RCODE_SERVFAIL || +- rcode == PJ_DNS_RCODE_REFUSED || ++ if (!pkt || rcode == PJ_DNS_RCODE_REFUSED || + rcode == PJ_DNS_RCODE_NOTAUTH) + { + is_good = PJ_FALSE; +-- +2.7.4 + Added: branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,164 @@ +From 9e67e0d5c3fdc747530a956038b374fca4748b76 Mon Sep 17 00:00:00 2001 +From: riza <riza@localhost> +Date: Thu, 13 Oct 2016 09:02:50 +0000 +Subject: [PATCH 1/4] Re #1969: Fix crash on using an already destroyed SSL + socket. + +--- + pjlib/src/pj/ssl_sock_ossl.c | 66 ++++++++++++++++++++++++++++---------------- + 1 file changed, 42 insertions(+), 24 deletions(-) + +diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c +index fa0db2d..ceab67a 100644 +--- a/pjlib/src/pj/ssl_sock_ossl.c ++++ b/pjlib/src/pj/ssl_sock_ossl.c +@@ -822,7 +822,10 @@ static void close_sockets(pj_ssl_sock_t *ssock) + pj_lock_acquire(ssock->write_mutex); + asock = ssock->asock; + if (asock) { +- ssock->asock = NULL; ++ // Don't set ssock->asock to NULL, as it may trigger assertion in ++ // send operation. This should be safe as active socket will simply ++ // return PJ_EINVALIDOP on any operation if it is already closed. ++ //ssock->asock = NULL; + ssock->sock = PJ_INVALID_SOCKET; + } + sock = ssock->sock; +@@ -841,9 +844,9 @@ static void close_sockets(pj_ssl_sock_t *ssock) + /* Reset SSL socket state */ + static void reset_ssl_sock_state(pj_ssl_sock_t *ssock) + { ++ pj_lock_acquire(ssock->write_mutex); + ssock->ssl_state = SSL_STATE_NULL; +- +- destroy_ssl(ssock); ++ pj_lock_release(ssock->write_mutex); + + close_sockets(ssock); + +@@ -1612,6 +1615,21 @@ static pj_status_t do_handshake(pj_ssl_sock_t *ssock) + return PJ_EPENDING; + } + ++static void ssl_on_destroy(void *arg) ++{ ++ pj_pool_t *pool = NULL; ++ pj_ssl_sock_t *ssock = (pj_ssl_sock_t*)arg; ++ ++ destroy_ssl(ssock); ++ ++ pj_lock_destroy(ssock->write_mutex); ++ ++ pool = ssock->pool; ++ ssock->pool = NULL; ++ if (pool) ++ pj_pool_release(pool); ++} ++ + + /* + ******************************************************************* +@@ -1830,7 +1848,7 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, + + /* Create new SSL socket instance */ + status = pj_ssl_sock_create(ssock_parent->pool, +- &ssock_parent->newsock_param, &ssock); ++ &ssock_parent->newsock_param, &ssock); + if (status != PJ_SUCCESS) + goto on_return; + +@@ -1906,12 +1924,10 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, + if (status != PJ_SUCCESS) + goto on_return; + +- /* Temporarily add ref the group lock until active socket creation, +- * to make sure that group lock is destroyed if the active socket +- * creation fails. +- */ + pj_grp_lock_add_ref(glock); + asock_cfg.grp_lock = ssock->param.grp_lock = glock; ++ pj_grp_lock_add_handler(ssock->param.grp_lock, ssock->pool, ssock, ++ ssl_on_destroy); + } + + pj_bzero(&asock_cb, sizeof(asock_cb)); +@@ -1927,11 +1943,6 @@ static pj_bool_t asock_on_accept_complete (pj_activesock_t *asock, + ssock, + &ssock->asock); + +- /* This will destroy the group lock if active socket creation fails */ +- if (asock_cfg.grp_lock) { +- pj_grp_lock_dec_ref(asock_cfg.grp_lock); +- } +- + if (status != PJ_SUCCESS) + goto on_return; + +@@ -2251,17 +2262,26 @@ PJ_DEF(pj_status_t) pj_ssl_sock_create (pj_pool_t *pool, + /* Create secure socket mutex */ + status = pj_lock_create_recursive_mutex(pool, pool->obj_name, + &ssock->write_mutex); +- if (status != PJ_SUCCESS) ++ if (status != PJ_SUCCESS) { ++ pj_pool_release(pool); + return status; ++ } + + /* Init secure socket param */ + pj_ssl_sock_param_copy(pool, &ssock->param, param); ++ ++ if (ssock->param.grp_lock) { ++ pj_grp_lock_add_ref(ssock->param.grp_lock); ++ pj_grp_lock_add_handler(ssock->param.grp_lock, pool, ssock, ++ ssl_on_destroy); ++ } ++ + ssock->param.read_buffer_size = ((ssock->param.read_buffer_size+7)>>3)<<3; + if (!ssock->param.timer_heap) { + PJ_LOG(3,(ssock->pool->obj_name, "Warning: timer heap is not " + "available. It is recommended to supply one to avoid " +- "a race condition if more than one worker threads " +- "are used.")); ++ "a race condition if more than one worker threads " ++ "are used.")); + } + + /* Finally */ +@@ -2277,8 +2297,6 @@ PJ_DEF(pj_status_t) pj_ssl_sock_create (pj_pool_t *pool, + */ + PJ_DEF(pj_status_t) pj_ssl_sock_close(pj_ssl_sock_t *ssock) + { +- pj_pool_t *pool; +- + PJ_ASSERT_RETURN(ssock, PJ_EINVAL); + + if (!ssock->pool) +@@ -2290,12 +2308,11 @@ PJ_DEF(pj_status_t) pj_ssl_sock_close(pj_ssl_sock_t *ssock) + } + + reset_ssl_sock_state(ssock); +- pj_lock_destroy(ssock->write_mutex); +- +- pool = ssock->pool; +- ssock->pool = NULL; +- if (pool) +- pj_pool_release(pool); ++ if (ssock->param.grp_lock) { ++ pj_grp_lock_dec_ref(ssock->param.grp_lock); ++ } else { ++ ssl_on_destroy(ssock); ++ } + + return PJ_SUCCESS; + } +@@ -2782,6 +2799,7 @@ pj_ssl_sock_start_accept2(pj_ssl_sock_t *ssock, + + /* Start accepting */ + pj_ssl_sock_param_copy(pool, &ssock->newsock_param, newsock_param); ++ ssock->newsock_param.grp_lock = NULL; + status = pj_activesock_start_accept(ssock->asock, pool); + if (status != PJ_SUCCESS) + goto on_error; +-- +2.7.4 + Added: branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,134 @@ +From 2ab7a9f67caf73be3f2215473f72882cfaef4972 Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Fri, 28 Oct 2016 12:11:30 -0500 +Subject: [PATCH 1/3] r5471 svn backport Various fixes for DNS IPv6 + +Fixed #1974: Various fixes for DNS IPv6 +--- + pjlib-util/src/pjlib-util/resolver.c | 11 +++++------ + pjlib-util/src/pjlib-util/srv_resolver.c | 17 +++++++++++++++-- + pjsip/src/pjsip/sip_resolve.c | 14 +++++++------- + 3 files changed, 27 insertions(+), 15 deletions(-) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index e5e1bed..d24ef9d 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -835,7 +835,7 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + pj_time_val now; + struct res_key key; + struct cached_res *cache; +- pj_dns_async_query *q; ++ pj_dns_async_query *q, *p_q = NULL; + pj_uint32_t hval; + pj_status_t status = PJ_SUCCESS; + +@@ -849,9 +849,6 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + /* Check type */ + PJ_ASSERT_RETURN(type > 0 && type < 0xFFFF, PJ_EINVAL); + +- if (p_query) +- *p_query = NULL; +- + /* Build resource key for looking up hash tables */ + init_res_key(&key, type, name); + +@@ -970,10 +967,12 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + pj_hash_set_np(resolver->hquerybyres, &q->key, sizeof(q->key), + 0, q->hbufkey, q); + +- if (p_query) +- *p_query = q; ++ p_q = q; + + on_return: ++ if (p_query) ++ *p_query = p_q; ++ + pj_mutex_unlock(resolver->mutex); + return status; + } +diff --git a/pjlib-util/src/pjlib-util/srv_resolver.c b/pjlib-util/src/pjlib-util/srv_resolver.c +index 02672aa..ff9c979 100644 +--- a/pjlib-util/src/pjlib-util/srv_resolver.c ++++ b/pjlib-util/src/pjlib-util/srv_resolver.c +@@ -187,9 +187,12 @@ PJ_DEF(pj_status_t) pj_dns_srv_cancel_query(pj_dns_srv_async_query *query, + has_pending = PJ_TRUE; + } + if (srv->q_aaaa) { +- pj_dns_resolver_cancel_query(srv->q_aaaa, PJ_FALSE); ++ /* Check if it is a dummy query. */ ++ if (srv->q_aaaa != (pj_dns_async_query*)0x1) { ++ pj_dns_resolver_cancel_query(srv->q_aaaa, PJ_FALSE); ++ has_pending = PJ_TRUE; ++ } + srv->q_aaaa = NULL; +- has_pending = PJ_TRUE; + } + } + +@@ -485,12 +488,22 @@ static pj_status_t resolve_hostnames(pj_dns_srv_async_query *query_job) + srv->common.type = PJ_DNS_TYPE_A; + srv->common_aaaa.type = PJ_DNS_TYPE_AAAA; + srv->parent = query_job; ++ srv->q_a = NULL; ++ srv->q_aaaa = NULL; + + status = PJ_SUCCESS; + + /* Start DNA A record query */ + if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA_ONLY) == 0) + { ++ if ((query_job->option & PJ_DNS_SRV_RESOLVE_AAAA) != 0) { ++ /* If there will be DNS AAAA query too, let's setup ++ * a dummy one here, otherwise app callback may be called ++ * immediately (before DNS AAAA query is sent) when ++ * DNS A record is available in the cache. ++ */ ++ srv->q_aaaa = (pj_dns_async_query*)0x1; ++ } + status = pj_dns_resolver_start_query(query_job->resolver, + &srv->target_name, + PJ_DNS_TYPE_A, 0, +diff --git a/pjsip/src/pjsip/sip_resolve.c b/pjsip/src/pjsip/sip_resolve.c +index ed326ba..3f3654d 100644 +--- a/pjsip/src/pjsip/sip_resolve.c ++++ b/pjsip/src/pjsip/sip_resolve.c +@@ -452,7 +452,7 @@ PJ_DEF(void) pjsip_resolve( pjsip_resolver_t *resolver, + } + + /* Resolve DNS AAAA record if address family is not fixed to IPv4 */ +- if (af != pj_AF_INET()) { ++ if (af != pj_AF_INET() && status == PJ_SUCCESS) { + status = pj_dns_resolver_start_query(resolver->res, + &query->naptr[0].name, + PJ_DNS_TYPE_AAAA, 0, +@@ -530,9 +530,9 @@ static void dns_a_callback(void *user_data, + + ++srv->count; + } +- +- } else { +- ++ } ++ ++ if (status != PJ_SUCCESS) { + char errmsg[PJ_ERR_MSG_SIZE]; + + /* Log error */ +@@ -593,9 +593,9 @@ static void dns_aaaa_callback(void *user_data, + + ++srv->count; + } +- +- } else { +- ++ } ++ ++ if (status != PJ_SUCCESS) { + char errmsg[PJ_ERR_MSG_SIZE]; + + /* Log error */ +-- +1.7.9.5 + Added: branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0006-r5473-svn-backport-Fix-pending-query.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,28 @@ +From 509d4339747f11cfbde3a0acc447ef5d521eea93 Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Fri, 28 Oct 2016 12:12:28 -0500 +Subject: [PATCH 2/3] r5473 svn backport Fix pending query + +Re #1974: +If there is a pending query, set the return value to that query (instead of NULL) + +Thanks to Richard Mudgett for the patch. +--- + pjlib-util/src/pjlib-util/resolver.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index d24ef9d..fe687b7 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -940,6 +940,7 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + /* Done. This child query will be notified once the "parent" + * query completes. + */ ++ p_q = nq; + status = PJ_SUCCESS; + goto on_return; + } +-- +1.7.9.5 + Added: branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0006-r5475-svn-backport-Remove-DNS-cache-entry.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,70 @@ +From 46e1cfa18853a38b7fcdebad782710c5db676657 Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Fri, 28 Oct 2016 12:15:44 -0500 +Subject: [PATCH 3/3] r5475 svn backport Remove DNS cache entry + +Re #1974: Remove DNS cache entry from resolver's hash table when app callback has a reference. + +Thanks to Richard Mudgett for the patch. +--- + pjlib-util/src/pjlib-util/resolver.c | 29 +++++++++++++++-------------- + 1 file changed, 15 insertions(+), 14 deletions(-) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index fe687b7..52b7655 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -1444,10 +1444,12 @@ static void update_res_cache(pj_dns_resolver *resolver, + if (ttl > resolver->settings.cache_max_ttl) + ttl = resolver->settings.cache_max_ttl; + ++ /* Get a cache response entry */ ++ cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, ++ sizeof(*key), &hval); ++ + /* If TTL is zero, clear the same entry in the hash table */ + if (ttl == 0) { +- cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, +- sizeof(*key), &hval); + /* Remove the entry before releasing its pool (see ticket #1710) */ + pj_hash_set(NULL, resolver->hrescache, key, sizeof(*key), hval, NULL); + +@@ -1457,24 +1459,23 @@ static void update_res_cache(pj_dns_resolver *resolver, + return; + } + +- /* Get a cache response entry */ +- cache = (struct cached_res *) pj_hash_get(resolver->hrescache, key, +- sizeof(*key), &hval); + if (cache == NULL) { + cache = alloc_entry(resolver); +- } else if (cache->ref_cnt > 1) { +- /* When cache entry is being used by callback (to app), just decrement +- * ref_cnt so it will be freed after the callback returns and allocate +- * new entry. +- */ +- cache->ref_cnt--; +- cache = alloc_entry(resolver); + } else { + /* Remove the entry before resetting its pool (see ticket #1710) */ + pj_hash_set(NULL, resolver->hrescache, key, sizeof(*key), hval, NULL); + +- /* Reset cache to avoid bloated cache pool */ +- reset_entry(&cache); ++ if (cache->ref_cnt > 1) { ++ /* When cache entry is being used by callback (to app), ++ * just decrement ref_cnt so it will be freed after ++ * the callback returns and allocate new entry. ++ */ ++ cache->ref_cnt--; ++ cache = alloc_entry(resolver); ++ } else { ++ /* Reset cache to avoid bloated cache pool */ ++ reset_entry(&cache); ++ } + } + + /* Duplicate the packet. +-- +1.7.9.5 + Added: branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch =================================================================== --- branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch (rev 0) +++ branches/1.0/package/pjsip/pjsip-0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch 2016-11-05 17:14:41 UTC (rev 7930) @@ -0,0 +1,33 @@ +From 732a997010d60fe93a7453e809672386749b0afc Mon Sep 17 00:00:00 2001 +From: Richard Mudgett <rmu...@di...> +Date: Tue, 1 Nov 2016 12:55:31 -0500 +Subject: [PATCH] r5477 svn backport Fix DNS write on freed memory. + +Re #1974: Fix DNS write on freed memory. +Thanks to Richard Mudgett for the patch. +--- + pjlib-util/src/pjlib-util/resolver.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/pjlib-util/src/pjlib-util/resolver.c b/pjlib-util/src/pjlib-util/resolver.c +index 52b7655..365772e 100644 +--- a/pjlib-util/src/pjlib-util/resolver.c ++++ b/pjlib-util/src/pjlib-util/resolver.c +@@ -908,7 +908,13 @@ PJ_DEF(pj_status_t) pj_dns_resolver_start_query( pj_dns_resolver *resolver, + /* Must return PJ_SUCCESS */ + status = PJ_SUCCESS; + +- goto on_return; ++ /* ++ * We cannot write to *p_query after calling cb because what ++ * p_query points to may have been freed by cb. ++ * Refer to ticket #1974. ++ */ ++ pj_mutex_unlock(resolver->mutex); ++ return status; + } + + /* At this point, we have a cached entry, but this entry has expired. +-- +1.7.9.5 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-04 22:47:40
|
Revision: 7929 http://sourceforge.net/p/astlinux/code/7929 Author: abelbeck Date: 2016-11-04 22:47:37 +0000 (Fri, 04 Nov 2016) Log Message: ----------- update ChangeLog Modified Paths: -------------- branches/1.0/docs/ChangeLog.txt Modified: branches/1.0/docs/ChangeLog.txt =================================================================== --- branches/1.0/docs/ChangeLog.txt 2016-11-04 22:26:53 UTC (rev 7928) +++ branches/1.0/docs/ChangeLog.txt 2016-11-04 22:47:37 UTC (rev 7929) @@ -10,6 +10,11 @@ Released @TBD@ +** IMPORTANT NOTICE + +-- Sangoma Wanpipe card support is no longer supplied in the standard AstLinux images. + Use a custom build to enable 'wanpipe' support. + ** System -- sqlite, version bump to 3.15.1 @@ -52,6 +57,8 @@ -- pjsip 2.5.5 (no change) +-- (Custom Build Only) wanpipe, version 7.0.20 (no change) + -- FOP2, available version bump to 2.31.05. Note: If you have a license, you may need to purchase an "Annual Software Maintenance" license if you upgrade. More info: http://doc.astlinux.org/userdoc:tt_asterisk-fop2-upgrade This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-04 22:26:55
|
Revision: 7928 http://sourceforge.net/p/astlinux/code/7928 Author: abelbeck Date: 2016-11-04 22:26:53 +0000 (Fri, 04 Nov 2016) Log Message: ----------- No longer enable 'wanpipe' for standard builds, use a custom build to enable it Modified Paths: -------------- branches/1.0/astlinux-ast11.config branches/1.0/astlinux-ast13.config branches/1.0/scripts/master-build branches/1.0/x86_64-configs/astlinux-ast11.config branches/1.0/x86_64-configs/astlinux-ast13.config Modified: branches/1.0/astlinux-ast11.config =================================================================== --- branches/1.0/astlinux-ast11.config 2016-11-04 22:16:28 UTC (rev 7927) +++ branches/1.0/astlinux-ast11.config 2016-11-04 22:26:53 UTC (rev 7928) @@ -184,7 +184,7 @@ BR2_PACKAGE_PROSODY=y # BR2_PACKAGE_RTPPROXY is not set BR2_PACKAGE_RHINO=y -BR2_PACKAGE_WANPIPE=y +# BR2_PACKAGE_WANPIPE is not set # # Audio and video libraries and applications Modified: branches/1.0/astlinux-ast13.config =================================================================== --- branches/1.0/astlinux-ast13.config 2016-11-04 22:16:28 UTC (rev 7927) +++ branches/1.0/astlinux-ast13.config 2016-11-04 22:26:53 UTC (rev 7928) @@ -184,7 +184,7 @@ BR2_PACKAGE_PROSODY=y # BR2_PACKAGE_RTPPROXY is not set BR2_PACKAGE_RHINO=y -BR2_PACKAGE_WANPIPE=y +# BR2_PACKAGE_WANPIPE is not set # # Audio and video libraries and applications Modified: branches/1.0/scripts/master-build =================================================================== --- branches/1.0/scripts/master-build 2016-11-04 22:16:28 UTC (rev 7927) +++ branches/1.0/scripts/master-build 2016-11-04 22:26:53 UTC (rev 7928) @@ -65,9 +65,6 @@ # disable BR2_PACKAGE_RHINO sed -i 's:^BR2_PACKAGE_RHINO=y.*$:# BR2_PACKAGE_RHINO is not set:' .config - # disable BR2_PACKAGE_WANPIPE - sed -i 's:^BR2_PACKAGE_WANPIPE=y.*$:# BR2_PACKAGE_WANPIPE is not set:' .config - # disable BR2_PACKAGE_DAHDI_HFCS sed -i 's:^BR2_PACKAGE_DAHDI_HFCS=y.*$:# BR2_PACKAGE_DAHDI_HFCS is not set:' .config Modified: branches/1.0/x86_64-configs/astlinux-ast11.config =================================================================== --- branches/1.0/x86_64-configs/astlinux-ast11.config 2016-11-04 22:16:28 UTC (rev 7927) +++ branches/1.0/x86_64-configs/astlinux-ast11.config 2016-11-04 22:26:53 UTC (rev 7928) @@ -165,7 +165,7 @@ BR2_PACKAGE_PROSODY=y # BR2_PACKAGE_RTPPROXY is not set BR2_PACKAGE_RHINO=y -BR2_PACKAGE_WANPIPE=y +# BR2_PACKAGE_WANPIPE is not set # # Audio and video libraries and applications Modified: branches/1.0/x86_64-configs/astlinux-ast13.config =================================================================== --- branches/1.0/x86_64-configs/astlinux-ast13.config 2016-11-04 22:16:28 UTC (rev 7927) +++ branches/1.0/x86_64-configs/astlinux-ast13.config 2016-11-04 22:26:53 UTC (rev 7928) @@ -165,7 +165,7 @@ BR2_PACKAGE_PROSODY=y # BR2_PACKAGE_RTPPROXY is not set BR2_PACKAGE_RHINO=y -BR2_PACKAGE_WANPIPE=y +# BR2_PACKAGE_WANPIPE is not set # # Audio and video libraries and applications This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-04 22:16:31
|
Revision: 7927 http://sourceforge.net/p/astlinux/code/7927 Author: abelbeck Date: 2016-11-04 22:16:28 +0000 (Fri, 04 Nov 2016) Log Message: ----------- update ChangeLog Modified Paths: -------------- branches/1.0/docs/ChangeLog.txt Modified: branches/1.0/docs/ChangeLog.txt =================================================================== --- branches/1.0/docs/ChangeLog.txt 2016-11-04 22:06:53 UTC (rev 7926) +++ branches/1.0/docs/ChangeLog.txt 2016-11-04 22:16:28 UTC (rev 7927) @@ -12,6 +12,8 @@ ** System +-- sqlite, version bump to 3.15.1 + -- libusb, version bump to 1.0.21 -- nano, version bump to 2.7.1 @@ -27,6 +29,8 @@ -- libcurl (curl) version bump to 7.51.0, security fixes: CVE-2016-8615, CVE-2016-8616, CVE-2016-8617, CVE-2016-8618, CVE-2016-8619, CVE-2016-8620, CVE-2016-8621, CVE-2016-8622, CVE-2016-8623, CVE-2016-8624, CVE-2016-8625 +-- OpenVPN, version bump to 2.3.13 + -- prosody, version bump to 0.9.11 -- ipset, version bump to 6.30 @@ -35,6 +39,9 @@ -- tcpdump, version bump to 4.8.1 +-- iproute2 (ip, tc, bridge, etc.) version bump to version 3.16.0, now including the 'bridge' utility. + No longer use 'brctl' for managing bridge interfaces, instead use iproute2 tools. + -- whois, version 5.2.13, new package to perform Whois lookups for domains and IP's. ** Asterisk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-04 22:06:56
|
Revision: 7926 http://sourceforge.net/p/astlinux/code/7926 Author: abelbeck Date: 2016-11-04 22:06:53 +0000 (Fri, 04 Nov 2016) Log Message: ----------- sqlite, version bump to 3.15.1 Modified Paths: -------------- branches/1.0/package/sqlite/sqlite.mk Modified: branches/1.0/package/sqlite/sqlite.mk =================================================================== --- branches/1.0/package/sqlite/sqlite.mk 2016-11-04 21:44:20 UTC (rev 7925) +++ branches/1.0/package/sqlite/sqlite.mk 2016-11-04 22:06:53 UTC (rev 7926) @@ -4,7 +4,7 @@ # ############################################################# -SQLITE_VERSION = 3150000 +SQLITE_VERSION = 3150100 SQLITE_SOURCE = sqlite-autoconf-$(SQLITE_VERSION).tar.gz SQLITE_SITE = http://www.sqlite.org/2016 SQLITE_INSTALL_STAGING = YES This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-04 21:44:23
|
Revision: 7925 http://sourceforge.net/p/astlinux/code/7925 Author: abelbeck Date: 2016-11-04 21:44:20 +0000 (Fri, 04 Nov 2016) Log Message: ----------- No longer use brctl for managing bridge interfaces, instead use iproute2 tools Modified Paths: -------------- branches/1.0/project/astlinux/target_skeleton/etc/init.d/network Modified: branches/1.0/project/astlinux/target_skeleton/etc/init.d/network =================================================================== --- branches/1.0/project/astlinux/target_skeleton/etc/init.d/network 2016-11-04 16:17:05 UTC (rev 7924) +++ branches/1.0/project/astlinux/target_skeleton/etc/init.d/network 2016-11-04 21:44:20 UTC (rev 7925) @@ -384,31 +384,28 @@ #BRIDGES if [ -n "$BRIDGE0" ]; then modprobe bridge - brctl addbr br0 - brctl setfd br0 0 + ip link add name br0 type bridge for i in $BRIDGE0; do ip link set dev $i up - brctl addif br0 $i + ip link set dev $i master br0 done fi if [ -n "$BRIDGE1" ]; then modprobe bridge - brctl addbr br1 - brctl setfd br1 0 + ip link add name br1 type bridge for i in $BRIDGE1; do ip link set dev $i up - brctl addif br1 $i + ip link set dev $i master br1 done fi if [ -n "$BRIDGE2" ]; then modprobe bridge - brctl addbr br2 - brctl setfd br2 0 + ip link add name br2 type bridge for i in $BRIDGE2; do ip link set dev $i up - brctl addif br2 $i + ip link set dev $i master br2 done fi @@ -768,17 +765,29 @@ #BRIDGES if [ -n "$BRIDGE0" ]; then ip link set dev br0 down - brctl delbr br0 + for i in $BRIDGE0; do + ip link set dev $i nomaster + ip link set dev $i down + done + ip link delete br0 type bridge fi if [ -n "$BRIDGE1" ]; then ip link set dev br1 down - brctl delbr br1 + for i in $BRIDGE1; do + ip link set dev $i nomaster + ip link set dev $i down + done + ip link delete br1 type bridge fi if [ -n "$BRIDGE2" ]; then ip link set dev br2 down - brctl delbr br2 + for i in $BRIDGE2; do + ip link set dev $i nomaster + ip link set dev $i down + done + ip link delete br2 type bridge fi #VLANS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-04 16:17:07
|
Revision: 7924 http://sourceforge.net/p/astlinux/code/7924 Author: abelbeck Date: 2016-11-04 16:17:05 +0000 (Fri, 04 Nov 2016) Log Message: ----------- iproute2, version bump to 3.16.0, adds 'bridge' command Modified Paths: -------------- branches/1.0/package/iproute2/iproute2.mk Modified: branches/1.0/package/iproute2/iproute2.mk =================================================================== --- branches/1.0/package/iproute2/iproute2.mk 2016-11-04 14:16:35 UTC (rev 7923) +++ branches/1.0/package/iproute2/iproute2.mk 2016-11-04 16:17:05 UTC (rev 7924) @@ -4,12 +4,12 @@ # ############################################################# -IPROUTE2_VERSION = 3.4.0 -IPROUTE2_SOURCE = iproute2-$(IPROUTE2_VERSION).tar.bz2 +IPROUTE2_VERSION = 3.16.0 +IPROUTE2_SOURCE = iproute2-$(IPROUTE2_VERSION).tar.xz IPROUTE2_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/net/iproute2 -IPROUTE2_TARGET_SBINS = ctstat genl ifstat ip lnstat nstat routef routel rtacct rtmon rtpr rtstat ss tc +IPROUTE2_TARGET_SBINS = ip tc bridge ss rtmon ifcfg rtpr routel routef nstat ifstat rtacct lnstat genl ctstat rtstat -IPROUTE2_DEPENDENCIES += host-bison +IPROUTE2_DEPENDENCIES += host-bison host-flex host-pkg-config # If both iproute2 and busybox are selected, make certain we win # the fight over who gets to have their utils actually installed. @@ -39,7 +39,10 @@ define IPROUTE2_BUILD_CMDS $(SED) 's/$$(CCOPTS)//' $(@D)/netem/Makefile - $(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" CCOPTS="$(TARGET_CFLAGS) -D_GNU_SOURCE" -C $(@D) + $(TARGET_MAKE_ENV) LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) \ + DBM_INCLUDE="$(STAGING_DIR)/usr/include" \ + SHARED_LIBS=y \ + CC="$(TARGET_CC)" CCOPTS="$(TARGET_CFLAGS) -D_GNU_SOURCE" -C $(@D) endef define IPROUTE2_INSTALL_TARGET_CMDS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-04 14:16:38
|
Revision: 7923 http://sourceforge.net/p/astlinux/code/7923 Author: abelbeck Date: 2016-11-04 14:16:35 +0000 (Fri, 04 Nov 2016) Log Message: ----------- openvpn, version bump to 2.3.13 Modified Paths: -------------- branches/1.0/package/openvpn/openvpn.mk Modified: branches/1.0/package/openvpn/openvpn.mk =================================================================== --- branches/1.0/package/openvpn/openvpn.mk 2016-11-03 21:53:12 UTC (rev 7922) +++ branches/1.0/package/openvpn/openvpn.mk 2016-11-04 14:16:35 UTC (rev 7923) @@ -4,7 +4,7 @@ # ############################################################# -OPENVPN_VERSION = 2.3.12 +OPENVPN_VERSION = 2.3.13 OPENVPN_SITE = http://swupdate.openvpn.net/community/releases OPENVPN_DEPENDENCIES = host-pkg-config OPENVPN_CONF_OPT = --disable-plugins --enable-iproute2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-03 21:53:14
|
Revision: 7922 http://sourceforge.net/p/astlinux/code/7922 Author: abelbeck Date: 2016-11-03 21:53:12 +0000 (Thu, 03 Nov 2016) Log Message: ----------- update ChangeLog Modified Paths: -------------- branches/1.0/docs/ChangeLog.txt Modified: branches/1.0/docs/ChangeLog.txt =================================================================== --- branches/1.0/docs/ChangeLog.txt 2016-11-03 21:28:44 UTC (rev 7921) +++ branches/1.0/docs/ChangeLog.txt 2016-11-03 21:53:12 UTC (rev 7922) @@ -10,7 +10,50 @@ Released @TBD@ +** System +-- libusb, version bump to 1.0.21 + +-- nano, version bump to 2.7.1 + +-- ca-certificates, update trusted root certificates 2016-11-02 + +-- Time Zone Database update, tzdata2016i and php-timezonedb-2016.9 + +** Networking + +-- OpenSSL, quasi-major version bump to 1.0.2j, LTS series. + +-- libcurl (curl) version bump to 7.51.0, security fixes: CVE-2016-8615, CVE-2016-8616, CVE-2016-8617, CVE-2016-8618, + CVE-2016-8619, CVE-2016-8620, CVE-2016-8621, CVE-2016-8622, CVE-2016-8623, CVE-2016-8624, CVE-2016-8625 + +-- prosody, version bump to 0.9.11 + +-- ipset, version bump to 6.30 + +-- libpcap, version bump to 1.8.1 + +-- tcpdump, version bump to 4.8.1 + +-- whois, version 5.2.13, new package to perform Whois lookups for domains and IP's. + +** Asterisk + +-- Asterisk 11.23.1 (no change) and 13.11.2 (no change) + +-- DAHDI, dahdi-linux 2.8.0.1 (no change) and dahdi-tools 2.8.0 (no change) + +-- pjsip 2.5.5 (no change) + +-- FOP2, available version bump to 2.31.05. + Note: If you have a license, you may need to purchase an "Annual Software Maintenance" license if you upgrade. + More info: http://doc.astlinux.org/userdoc:tt_asterisk-fop2-upgrade + +** Web Interface + +-- no change + + Additions for AstLinux 1.2.8: ============================= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <abe...@us...> - 2016-11-03 21:28:47
|
Revision: 7921 http://sourceforge.net/p/astlinux/code/7921 Author: abelbeck Date: 2016-11-03 21:28:44 +0000 (Thu, 03 Nov 2016) Log Message: ----------- prosody, version bump to 0.9.11 Modified Paths: -------------- branches/1.0/package/prosody/prosody.mk Modified: branches/1.0/package/prosody/prosody.mk =================================================================== --- branches/1.0/package/prosody/prosody.mk 2016-11-03 21:12:11 UTC (rev 7920) +++ branches/1.0/package/prosody/prosody.mk 2016-11-03 21:28:44 UTC (rev 7921) @@ -4,7 +4,7 @@ # ############################################################# -PROSODY_VERSION = 0.9.10 +PROSODY_VERSION = 0.9.11 PROSODY_SOURCE = prosody-$(PROSODY_VERSION).tar.gz PROSODY_SITE = http://prosody.im/downloads/source PROSODY_DEPENDENCIES = lua libidn openssl luafilesystem luaexpat luasocket luasec This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |