Hello community, here is the log from the commit of package apr for openSUSE:Factory checked in at 2019-02-04 21:21:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/apr (Old) and /work/SRC/openSUSE:Factory/.apr.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apr" Mon Feb 4 21:21:07 2019 rev:9 rq:666436 version:1.6.5 Changes: -------- --- /work/SRC/openSUSE:Factory/apr/apr.changes 2018-05-15 10:34:02.506778279 +0200 +++ /work/SRC/openSUSE:Factory/.apr.new.28833/apr.changes 2019-02-04 21:21:09.799657606 +0100 @@ -1,0 +2,20 @@ +Wed Jan 16 09:10:11 UTC 2019 - Tomáš Chvátal <[email protected]> + +- Update keyring to match current release maintainer + +------------------------------------------------------------------- +Thu Oct 18 20:45:26 UTC 2018 - Manu Maier <[email protected]> + +- Version 1.6.5 + * Fix Win32 build breakage in apr_os_exp_time_put() in 1.6.4. [Rainer Jung] +- Version 1.6.4 + * configure: Fix detection of <net/if.h> on OpenBSD. + PR 61976. [David Carlier <devnexen gmail.com>, Yann Ylavic] + * Fix apr_parse_addr_port() regression in scope_id parsing introduced + in 1.6.3. [Rainer Jung] + * Fix Win32 file buffer locking behavior for single threaded file streams. + [Evgeny Kotkov, Mladen Turk, Jean-Frederic Clere] + * Numerous corrections to APR poll behavior. [Yann Ylavic] +- Drop patch gcc8-integer-overflow.patch merged upstream + +------------------------------------------------------------------- Old: ---- apr-1.6.3.tar.bz2 apr-1.6.3.tar.bz2.asc gcc8-integer-overflow.patch New: ---- apr-1.6.5.tar.bz2 apr-1.6.5.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ apr.spec ++++++ --- /var/tmp/diff_new_pack.cNcdib/_old 2019-02-04 21:21:10.855657355 +0100 +++ /var/tmp/diff_new_pack.cNcdib/_new 2019-02-04 21:21:10.855657355 +0100 @@ -1,7 +1,7 @@ # # spec file for package apr # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -21,12 +21,12 @@ %define installbuilddir %{_libdir}/apr-%{aprver}/build %define includedir %{_includedir}/apr-%{aprver} Name: apr -Version: 1.6.3 +Version: 1.6.5 Release: 0 Summary: Apache Portable Runtime (APR) Library License: Apache-2.0 Group: Development/Libraries/C and C++ -Url: https://apr.apache.org/ +URL: https://apr.apache.org/ Source0: https://www.apache.org/dist/apr/apr-%{version}.tar.bz2 Source1: https://www.apache.org/dist/apr/apr-%{version}.tar.bz2.asc Source2: %{name}.keyring @@ -34,7 +34,6 @@ Patch5: apr-visibility.patch Patch6: apr-use-getrandom.patch Patch9: apr-proc-mutex-map-anon.patch -Patch10: gcc8-integer-overflow.patch BuildRequires: doxygen BuildRequires: fdupes BuildRequires: libtool @@ -43,7 +42,6 @@ # for the testsuite BuildRequires: netcfg BuildRequires: pkgconfig -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description APR is Apache's Portable Runtime Library, designed to be a support @@ -88,7 +86,6 @@ %patch5 -p1 %patch6 -p1 %patch9 -p1 -%patch10 -p1 # Do not put date to doxy content sed -i \ @@ -141,16 +138,14 @@ %postun -n %{libname} -p /sbin/ldconfig %files -n %{libname} -%defattr(-,root,root) %doc CHANGES -%doc LICENSE +%license LICENSE %doc NOTICE %{_libdir}/libapr-%{aprver}.so.* # Do NOT move to devel as this is utilized by Tomcat %{_libdir}/libapr-%{aprver}.so %files devel -%defattr(-,root,root) %doc docs/APRDesign.html %doc docs/canonical_filenames.html %doc docs/incomplete_types ++++++ apr-1.6.3.tar.bz2 -> apr-1.6.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/CHANGES new/apr-1.6.5/CHANGES --- old/apr-1.6.3/CHANGES 2017-09-11 17:28:41.000000000 +0200 +++ new/apr-1.6.5/CHANGES 2018-09-10 15:55:52.000000000 +0200 @@ -1,4 +1,21 @@ -*- coding: utf-8 -*- +Changes for APR 1.6.5 + + *) Fix Win32 build breakage in apr_os_exp_time_put() in 1.6.4. [Rainer Jung] + +Changes for APR 1.6.4 (not released) + + *) configure: Fix detection of <net/if.h> on OpenBSD. + PR 61976. [David Carlier <devnexen gmail.com>, Yann Ylavic] + + *) Fix apr_parse_addr_port() regression in scope_id parsing introduced + in 1.6.3. [Rainer Jung] + + *) Fix Win32 file buffer locking behavior for single threaded file streams. + [Evgeny Kotkov, Mladen Turk, Jean-Frederic Clere] + + *) Numerous corrections to APR poll behavior. [Yann Ylavic] + Changes for APR 1.6.3 *) apr_file_trunc: Truncating a buffered file could add unexpected diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/Makefile.in new/apr-1.6.5/Makefile.in --- old/apr-1.6.3/Makefile.in 2017-05-31 17:04:18.000000000 +0200 +++ new/apr-1.6.5/Makefile.in 2018-08-25 16:56:57.000000000 +0200 @@ -63,6 +63,7 @@ bindir=@bindir@ libdir=@libdir@ includedir=@includedir@ +datadir=@datadir@ installbuilddir=@installbuilddir@ # Create apr-config script suitable for the install tree diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/NOTICE new/apr-1.6.5/NOTICE --- old/apr-1.6.3/NOTICE 2017-01-02 20:43:47.000000000 +0100 +++ new/apr-1.6.5/NOTICE 2018-01-04 13:57:45.000000000 +0100 @@ -1,5 +1,5 @@ Apache Portable Runtime -Copyright (c) 2000-2017 The Apache Software Foundation. +Copyright (c) 2000-2018 The Apache Software Foundation. This product includes software developed at The Apache Software Foundation (http://www.apache.org/). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/apr.spec new/apr-1.6.5/apr.spec --- old/apr-1.6.3/apr.spec 2017-10-18 16:50:19.000000000 +0200 +++ new/apr-1.6.5/apr.spec 2018-09-10 23:14:53.000000000 +0200 @@ -3,7 +3,7 @@ Summary: Apache Portable Runtime library Name: apr -Version: 1.6.3 +Version: 1.6.5 Release: 1 License: Apache Software License Group: System Environment/Libraries diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/build/config.guess new/apr-1.6.5/build/config.guess --- old/apr-1.6.3/build/config.guess 2017-09-25 20:23:17.000000000 +0200 +++ new/apr-1.6.5/build/config.guess 2018-01-04 20:51:10.000000000 +0100 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-09-16' +timestamp='2018-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -39,7 +39,7 @@ Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -244,6 +244,9 @@ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} exit ;; + *:MidnightBSD:*:*) + echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -262,6 +265,9 @@ *:Redox:*:*) echo ${UNAME_MACHINE}-unknown-redox exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -479,13 +485,13 @@ #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); @@ -608,7 +614,7 @@ *:AIX:*:*) echo rs6000-ibm-aix exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and @@ -629,8 +635,8 @@ 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` @@ -743,7 +749,7 @@ { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) @@ -752,7 +758,7 @@ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) @@ -1072,7 +1078,7 @@ i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + i*86:*:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} @@ -1400,8 +1406,20 @@ exit ;; esac +echo "$0: unable to guess system type" >&2 + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <<EOF + +NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize +the system type. Please install a C compiler and try again. +EOF + ;; +esac + cat >&2 <<EOF -$0: unable to guess system type This script (version $timestamp), has failed to recognize the operating system you are using. If your script is old, overwrite *all* @@ -1441,7 +1459,7 @@ exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/build/config.sub new/apr-1.6.5/build/config.sub --- old/apr-1.6.3/build/config.sub 2017-09-25 20:23:17.000000000 +0200 +++ new/apr-1.6.5/build/config.sub 2018-01-04 20:51:10.000000000 +0100 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-09-16' +timestamp='2018-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -57,7 +57,7 @@ Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -67,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -313,7 +313,6 @@ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ | wasm32 \ - | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown @@ -640,7 +639,7 @@ basic_machine=rs6000-bull os=-bosx ;; - dpx2* | dpx2*-bull) + dpx2*) basic_machine=m68k-bull os=-sysv3 ;; @@ -902,7 +901,7 @@ basic_machine=v70-nec os=-sysv ;; - next | m*-next ) + next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) @@ -1417,7 +1416,7 @@ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1492,7 +1491,7 @@ -nova*) os=-rtmk-nova ;; - -ns2 ) + -ns2) os=-nextstep2 ;; -nsk*) @@ -1547,6 +1546,19 @@ -dicos*) os=-dicos ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; -nacl*) ;; -ios) @@ -1694,7 +1706,7 @@ m88k-omron*) os=-luna ;; - *-next ) + *-next) os=-nextstep ;; *-sequent) @@ -1829,7 +1841,7 @@ exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/config.layout new/apr-1.6.5/config.layout --- old/apr-1.6.3/config.layout 2004-11-24 23:51:51.000000000 +0100 +++ new/apr-1.6.5/config.layout 2018-08-25 16:56:57.000000000 +0200 @@ -223,6 +223,7 @@ libexecdir: ${exec_prefix}/lib/apr/modules mandir: ${exec_prefix}/share/man datadir: ${exec_prefix}/share/apr + installbuilddir: ${datadir}/build-${APR_MAJOR_VERSION} includedir: ${exec_prefix}/include/apr-${APR_MAJOR_VERSION} localstatedir: ${prefix}/var/run runtimedir: ${prefix}/var/run diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/configure new/apr-1.6.5/configure --- old/apr-1.6.3/configure 2017-10-18 16:50:19.000000000 +0200 +++ new/apr-1.6.5/configure 2018-09-10 23:14:53.000000000 +0200 @@ -1592,7 +1592,7 @@ --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). - --with-installbuilddir=DIR location to store APR build files (defaults to '${datadir}/build') + --with-installbuilddir=DIR location to store APR build files --without-libtool avoid using libtool to link the library --with-efence[=DIR] path to Electric Fence installation --with-valgrind[=DIR] Enable code to teach valgrind about apr pools @@ -18297,8 +18297,6 @@ # Check whether --with-installbuilddir was given. if test "${with_installbuilddir+set}" = set; then : withval=$with_installbuilddir; installbuilddir=$withval -else - installbuilddir="${datadir}/build-${APR_MAJOR_VERSION}" fi @@ -21578,7 +21576,8 @@ #endif";; esac -for ac_header in sys/types.h sys/mman.h sys/ipc.h sys/mutex.h sys/shm.h sys/file.h kernel/OS.h os2.h windows.h +for ac_header in sys/types.h sys/mman.h sys/ipc.h sys/mutex.h \ + sys/shm.h sys/file.h sys/socket.h kernel/OS.h os2.h windows.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -21588,6 +21587,24 @@ _ACEOF fi + +done + +for ac_header in net/if.h +do : + ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" " +#ifdef HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif +#include <net/if.h> + +" +if test "x$ac_cv_header_net_if_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NET_IF_H 1 +_ACEOF + +fi done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/configure.in new/apr-1.6.5/configure.in --- old/apr-1.6.3/configure.in 2017-10-03 14:55:19.000000000 +0200 +++ new/apr-1.6.5/configure.in 2018-08-25 16:56:57.000000000 +0200 @@ -272,8 +272,8 @@ ;; esac -AC_ARG_WITH(installbuilddir, [ --with-installbuilddir=DIR location to store APR build files (defaults to '${datadir}/build')], - [ installbuilddir=$withval ], [ installbuilddir="${datadir}/build-${APR_MAJOR_VERSION}" ] ) +AC_ARG_WITH(installbuilddir, [ --with-installbuilddir=DIR location to store APR build files], + [ installbuilddir=$withval ] ) AC_SUBST(installbuilddir) AC_ARG_WITH(libtool, [ --without-libtool avoid using libtool to link the library], @@ -1162,7 +1162,15 @@ #endif";; esac -AC_CHECK_HEADERS([sys/types.h sys/mman.h sys/ipc.h sys/mutex.h sys/shm.h sys/file.h kernel/OS.h os2.h windows.h]) +AC_CHECK_HEADERS([sys/types.h sys/mman.h sys/ipc.h sys/mutex.h \ + sys/shm.h sys/file.h sys/socket.h kernel/OS.h os2.h windows.h]) +AC_CHECK_HEADERS([net/if.h],[],[], +[ +#ifdef HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif +#include <net/if.h> +]) AC_CHECK_FUNCS([mmap munmap shm_open shm_unlink shmget shmat shmdt shmctl \ create_area mprotect]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/docs/APRDesign.html new/apr-1.6.5/docs/APRDesign.html --- old/apr-1.6.3/docs/APRDesign.html 2004-11-24 23:51:51.000000000 +0100 +++ new/apr-1.6.5/docs/APRDesign.html 2018-08-30 04:49:36.000000000 +0200 @@ -152,7 +152,7 @@ <p>The current design of APR requires that most APR types be incomplete. It is not possible to write flexible portable code if programs can access the internals of APR types. This is because different platforms are -likely to define different native types. There are only two execptions to +likely to define different native types. There are only two exceptions to this rule:</p> <ul> @@ -227,7 +227,7 @@ <p>For an actual example, look at any file in the include directory. The reason the docs are in the header files is to ensure that the docs always -reflect the current code. If you change paramters or return values for a +reflect the current code. If you change parameters or return values for a function, please be sure to update the documentation.</p> <h2>APR Error reporting</h2> @@ -246,7 +246,7 @@ <p>All platforms return errno values unchanged. Each platform can also have one system error type, which can be returned after an offset is added. -There are five types of error values in APR, each with it's own offset.</p> +There are five types of error values in APR, each with its own offset.</p> <!-- This should be turned into a table, but I am lazy today --> <pre> @@ -277,7 +277,7 @@ <strong>The difference in naming between APR_OS_START_ERROR and APR_OS_START_STATUS mentioned above allows programmers to easily determine if -the error code indicates an error condition or a status codition.</strong> +the error code indicates an error condition or a status condition.</strong> <p>If your function has multiple return codes that all indicate success, but with different results, or if your function can only return PASS/FAIL, you @@ -345,7 +345,7 @@ an error string. If we convert all errors to a common subset, we have four steps to output an error string:</p> -<p>The seocnd problem with option 1, is that it is a lossy conversion. For +<p>The second problem with option 1, is that it is a lossy conversion. For example, Windows and OS/2 have a couple hundred error codes, but POSIX errno only defines about 50 errno values. This means that if we convert to a canonical error value immediately, there is no way for the programmer to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/docs/canonical_filenames.html new/apr-1.6.5/docs/canonical_filenames.html --- old/apr-1.6.3/docs/canonical_filenames.html 2013-12-14 10:22:34.000000000 +0100 +++ new/apr-1.6.5/docs/canonical_filenames.html 2018-08-30 04:49:36.000000000 +0200 @@ -8,10 +8,10 @@ <p>APR porters need to address the underlying discrepancies between file systems. To achieve a reasonable degree of security, the program depending upon APR needs to know that two paths may be -compared, and that a mismatch is guarenteed to reflect that the +compared, and that a mismatch is guaranteed to reflect that the two paths do not return the same resource</p>. -<p>The first discrepancy is in volume roots. Unix and pure deriviates +<p>The first discrepancy is in volume roots. Unix and pure derivatives have only one root path, "/". Win32 and OS2 share root paths of the form "D:/", D: is the volume designation. However, this can be specified as "//./D:/" as well, indicating D: volume of the @@ -21,7 +21,7 @@ form "server/volume:/", or the simpler "volume:/" syntax for 'this' machine. All these non-Unix file systems accept volume:path, without a slash following the colon, as a path relative to the -current working directory, which APR will treat as ambigious, that +current working directory, which APR will treat as ambiguous, that is, neither an absolute nor a relative path per se.</p> <p>The second discrepancy is in the meaning of the 'this' directory. @@ -39,35 +39,35 @@ since the parent of the root is root. This gets tricky on the Win32 and OS2 platforms, since the ".." element is invalid before the "//server/share/" is complete, and the "//server/share/../" -seqence is the complete UNC root "//server/share/". In relative +sequence is the complete UNC root "//server/share/". In relative paths, leading ".." elements are significant, until they are merged with an absolute path. The relative form must only retain the ".." segments as leading segments, to be resolved once merged to another relative or an absolute path.</p> <p>The fourth discrepancy occurs with acceptance of alternate character -codes for the same element. Path seperators are not retained within +codes for the same element. Path separators are not retained within the APR canonical forms. The OS filesystem and APR (slashed) forms can both be returned as strings, to be used in the proper context. Unix, Win32 and Netware all accept slashes and backslashes as the -same path seperator symbol, although unix strictly accepts slashes. +same path separator symbol, although unix strictly accepts slashes. While the APR form of the name strictly uses slashes, always consider that there could be a platform that actually accepts slashes as a character within a segment name.</p> -<p>The fifth and worst discrepancy plauges Win32, OS2, Netware, and some +<p>The fifth and worst discrepancy plagues Win32, OS2, Netware, and some filesystems mounted in Unix. Case insensitivity can permit the same file to slip through in both it's proper case and alternate cases. Simply changing the case is insufficient for any character set beyond -ASCII, since various dilectic forms of characters suffer from one to +ASCII, since various dialectic forms of characters suffer from one to many or many to one translations. An example would be u-umlaut, which might be accepted as a single character u-umlaut, a two character sequence u and the zero-width umlaut, the upper case form of the same, -or perhaps even a captial U alone. This can be handled in different +or perhaps even a capital U alone. This can be handled in different ways depending on the purposes of the APR based program, but the one requirement is that the path must be absolute in order to resolve these ambiguities. Methods employed include comparison of device and inode -file uniqifiers, which is a fairly fast operation, or quering the OS +file uniqifiers, which is a fairly fast operation, or querying the OS for the true form of the name, which can be much slower. Only the acknowledgement of the file names by the OS can validate the equality of two different cases of the same filename.</p> @@ -76,7 +76,7 @@ significant in non-unix file systems. Trailing periods are accepted but never stored, therefore trailing periods must be ignored for any form of comparison. And all OS's have certain expectations of what -characters are illegal (or undesireable due to confusion.)</p> +characters are illegal (or undesirable due to confusion.)</p> <p>A final warning, canonical functions don't transform or resolve case or character ambiguity issues until they are resolved into an absolute @@ -111,10 +111,10 @@ <p>In any case, returning the char* path, with a flag to request the proper case, forces the OS calls to resolve the true names of each segment. Where -there is a penality for this operation and the stat device and inode test +there is a penalty for this operation and the stat device and inode test is faster, case correction is postponed until the char* result is requested. On platforms that identify the inode, device, or proper name interchangably -with no penalities, this may occur when the name is initially processed.</p> +with no penalties, this may occur when the name is initially processed.</p> <hr> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/docs/incomplete_types new/apr-1.6.5/docs/incomplete_types --- old/apr-1.6.3/docs/incomplete_types 2004-11-24 23:51:51.000000000 +0100 +++ new/apr-1.6.5/docs/incomplete_types 2018-08-30 04:49:36.000000000 +0200 @@ -38,7 +38,7 @@ #endif } ap_file_t; -This captures the essense of what is currently being defined for ap_file_t +This captures the essence of what is currently being defined for ap_file_t using incomplete types. However, using this structure leads developers to believe that they are safe accessing any of the fields in this structure. This is not true. On some platforms, such as Windows, about half of the @@ -53,7 +53,7 @@ #define filetype int #endif -And then in the defintion for ap_file_t, we could say: +And then in the definition for ap_file_t, we could say: filetype filedes; This gets rid of some of the complexity, by moving it off to the side, but @@ -73,7 +73,7 @@ For example, the first implementation of time functions used incomplete types, which added a layer of complexity that turned out to be unnecessary. If a platform cannot provide a simple number that represents the number of seconds -elapsed since a specifed date and time, then APR doesn't really want to +elapsed since a specified date and time, then APR doesn't really want to provide support for that platform. APR is trying hard to provide a balance of incomplete and complete types, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/file_io/win32/buffer.c new/apr-1.6.5/file_io/win32/buffer.c --- old/apr-1.6.3/file_io/win32/buffer.c 2006-08-03 12:55:31.000000000 +0200 +++ new/apr-1.6.5/file_io/win32/buffer.c 2018-09-05 19:01:01.000000000 +0200 @@ -23,13 +23,17 @@ { apr_status_t rv; - apr_thread_mutex_lock(file->mutex); + if (file->flags & APR_FOPEN_XTHREAD) { + apr_thread_mutex_lock(file->mutex); + } if(file->buffered) { /* Flush the existing buffer */ rv = apr_file_flush(file); if (rv != APR_SUCCESS) { - apr_thread_mutex_unlock(file->mutex); + if (file->flags & APR_FOPEN_XTHREAD) { + apr_thread_mutex_unlock(file->mutex); + } return rv; } } @@ -48,7 +52,9 @@ file->buffered = 0; } - apr_thread_mutex_unlock(file->mutex); + if (file->flags & APR_FOPEN_XTHREAD) { + apr_thread_mutex_unlock(file->mutex); + } return APR_SUCCESS; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_allocator.h new/apr-1.6.5/include/apr_allocator.h --- old/apr-1.6.3/include/apr_allocator.h 2017-04-03 13:18:36.000000000 +0200 +++ new/apr-1.6.5/include/apr_allocator.h 2018-08-25 15:50:04.000000000 +0200 @@ -107,7 +107,7 @@ /** * Get the true size that would be allocated for the given size (including * the header and alignment). - * @param list The allocator from which to the memory would be allocated + * @param allocator The allocator from which to the memory would be allocated * @param size The size to align * @return The aligned size (or zero on apr_size_t overflow) */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_atomic.h new/apr-1.6.5/include/apr_atomic.h --- old/apr-1.6.3/include/apr_atomic.h 2007-07-10 18:35:45.000000000 +0200 +++ new/apr-1.6.5/include/apr_atomic.h 2018-08-26 12:05:37.000000000 +0200 @@ -41,7 +41,7 @@ * @param p pool * @return APR_SUCCESS on successful completion * @remark Programs do NOT need to call this directly. APR will call this - * automatically from apr_initialize. + * automatically from apr_initialize(). * @internal */ APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_escape.h new/apr-1.6.5/include/apr_escape.h --- old/apr-1.6.3/include/apr_escape.h 2014-04-25 12:39:23.000000000 +0200 +++ new/apr-1.6.5/include/apr_escape.h 2018-08-26 12:25:03.000000000 +0200 @@ -223,8 +223,8 @@ /** * Apply entity encoding to a string. Characters are replaced as follows: - * '<' becomes '<', '>' becomes '>', '&' becomes '&', the - * double quote becomes '"" and the single quote becomes '''. + * '<' becomes '\<', '>' becomes '\>', '&' becomes '\&', the + * double quote becomes '\"" and the single quote becomes '\''. * * If toasc is not zero, any non ascii character will be encoded as * '%\#ddd;', where ddd is the decimal code of the character. @@ -242,9 +242,9 @@ /** * Apply entity encoding to a string, returning the result from a pool. - * Characters are replaced as follows: '<' becomes '<', '>' becomes - * '>', '&' becomes '&', the double quote becomes '"" and the - * single quote becomes '''. + * Characters are replaced as follows: '<' becomes '\<', '>' becomes + * '\>', '&' becomes '\&', the double quote becomes '\"" and the + * single quote becomes '\''. * @param p Pool to allocate from * @param str The original string * @param toasc If non zero, encode non ascii characters diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_file_info.h new/apr-1.6.5/include/apr_file_info.h --- old/apr-1.6.3/include/apr_file_info.h 2014-04-15 15:55:28.000000000 +0200 +++ new/apr-1.6.5/include/apr_file_info.h 2018-08-26 12:05:37.000000000 +0200 @@ -50,7 +50,7 @@ /** apr_filetype_e values for the filetype member of the * apr_file_info_t structure - * @warning: Not all of the filetypes below can be determined. + * @warning Not all of the filetypes below can be determined. * For example, a given platform might not correctly report * a socket descriptor as APR_SOCK if that type isn't * well-identified on that platform. In such cases where @@ -413,7 +413,7 @@ * Determine the encoding used internally by the FilePath functions * @param style points to a variable which receives the encoding style flag * @param p the pool to allocate any working storage - * @remark Use @c apr_os_locale_encoding and/or @c apr_os_default_encoding + * @remark Use apr_os_locale_encoding() and/or apr_os_default_encoding() * to get the name of the path encoding if it's not UTF-8. */ APR_DECLARE(apr_status_t) apr_filepath_encoding(int *style, apr_pool_t *p); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_general.h new/apr-1.6.5/include/apr_general.h --- old/apr-1.6.3/include/apr_general.h 2013-06-17 14:28:14.000000000 +0200 +++ new/apr-1.6.5/include/apr_general.h 2018-08-26 12:05:37.000000000 +0200 @@ -170,8 +170,8 @@ /** * Setup any APR internal data structures. This MUST be the first function * called for any APR library. It is safe to call apr_initialize several - * times as long as apr_terminate is called the same number of times. - * @remark See apr_app_initialize if this is an application, rather than + * times as long as apr_terminate() is called the same number of times. + * @remark See apr_app_initialize() if this is an application, rather than * a library consumer of apr. */ APR_DECLARE(apr_status_t) apr_initialize(void); @@ -184,9 +184,9 @@ * @param argc Pointer to the argc that may be corrected * @param argv Pointer to the argv that may be corrected * @param env Pointer to the env that may be corrected, may be NULL - * @remark See apr_initialize if this is a library consumer of apr. - * Otherwise, this call is identical to apr_initialize, and must be closed - * with a call to apr_terminate at the end of program execution. + * @remark See apr_initialize() if this is a library consumer of apr. + * Otherwise, this call is identical to apr_initialize(), and must be closed + * with a call to apr_terminate() at the end of program execution. */ APR_DECLARE(apr_status_t) apr_app_initialize(int *argc, char const * const * *argv, @@ -198,20 +198,21 @@ * apr_initialize() or apr_app_initialize(). * @remark An APR program must call this function at termination once it * has stopped using APR services. The APR developers suggest using - * atexit to ensure this is called. When using APR from a language - * other than C that has problems with the calling convention, use - * apr_terminate2() instead. + * @c atexit(apr_terminate) to ensure this is called. When using APR + * from a language other than C that has problems with the calling + * convention, use apr_terminate2() instead. + * @see apr_terminate2 */ APR_DECLARE_NONSTD(void) apr_terminate(void); /** * Tear down any APR internal data structures which aren't torn down - * automatically, same as apr_terminate - * @remark An APR program must call either the apr_terminate or apr_terminate2 + * automatically, same as apr_terminate() + * @remark An APR program must call either the apr_terminate() or apr_terminate2 * function once it it has finished using APR services. The APR - * developers suggest using atexit(apr_terminate) to ensure this is done. + * developers suggest using @c atexit(apr_terminate) to ensure this is done. * apr_terminate2 exists to allow non-c language apps to tear down apr, - * while apr_terminate is recommended from c language applications. + * while apr_terminate() is recommended from c language applications. */ APR_DECLARE(void) apr_terminate2(void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_portable.h new/apr-1.6.5/include/apr_portable.h --- old/apr-1.6.3/include/apr_portable.h 2016-04-13 14:05:21.000000000 +0200 +++ new/apr-1.6.5/include/apr_portable.h 2018-08-26 12:05:37.000000000 +0200 @@ -535,7 +535,7 @@ /** * Get the name of the current locale character set. * @param pool the pool to allocate the name from, if needed - * @remark Defers to apr_os_default_encoding if the current locale's + * @remark Defers to apr_os_default_encoding() if the current locale's * data can't be retrieved on this system. */ APR_DECLARE(const char*) apr_os_locale_encoding(apr_pool_t *pool); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_skiplist.h new/apr-1.6.5/include/apr_skiplist.h --- old/apr-1.6.3/include/apr_skiplist.h 2015-04-09 23:35:12.000000000 +0200 +++ new/apr-1.6.5/include/apr_skiplist.h 2018-08-25 15:50:04.000000000 +0200 @@ -159,9 +159,9 @@ * @param data The value to search for * @param iter A pointer to the returned skip list node representing the element * found - * @param func The comparison function to use + * @param comp The comparison function to use */ -APR_DECLARE(void *) apr_skiplist_last_compare(apr_skiplist *sli, void *data, +APR_DECLARE(void *) apr_skiplist_last_compare(apr_skiplist *sl, void *data, apr_skiplistnode **iter, apr_skiplist_compare comp); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_strings.h new/apr-1.6.5/include/apr_strings.h --- old/apr-1.6.3/include/apr_strings.h 2014-03-07 18:49:19.000000000 +0100 +++ new/apr-1.6.5/include/apr_strings.h 2018-08-26 12:05:37.000000000 +0200 @@ -101,10 +101,10 @@ * @param s The block of characters to duplicate * @param n The number of characters to duplicate * @return The new string or NULL if s == NULL - * @remark This is a faster alternative to apr_pstrndup, for use + * @remark This is a faster alternative to apr_pstrndup(), for use * when you know that the string being duplicated really * has 'n' or more characters. If the string might contain - * fewer characters, use apr_pstrndup. + * fewer characters, use apr_pstrndup(). */ APR_DECLARE(char *) apr_pstrmemdup(apr_pool_t *p, const char *s, apr_size_t n) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_tables.h new/apr-1.6.5/include/apr_tables.h --- old/apr-1.6.3/include/apr_tables.h 2016-12-12 19:50:36.000000000 +0100 +++ new/apr-1.6.5/include/apr_tables.h 2018-08-26 12:05:37.000000000 +0200 @@ -179,7 +179,7 @@ * @param p The pool to allocate the copy of the array out of * @param arr The array to copy * @return An exact copy of the array passed in - * @remark The alternate apr_array_copy_hdr copies only the header, and arranges + * @remark The alternate apr_array_copy_hdr() copies only the header, and arranges * for the elements to be copied if (and only if) the code subsequently * does a push or arraycat. */ @@ -191,7 +191,7 @@ * @param p The pool to allocate the copy of the array out of * @param arr The array to copy * @return An exact copy of the array passed in - * @remark The alternate apr_array_copy copies the *entire* array. + * @remark The alternate apr_array_copy() copies the *entire* array. */ APR_DECLARE(apr_array_header_t *) apr_array_copy_hdr(apr_pool_t *p, const apr_array_header_t *arr); @@ -318,7 +318,7 @@ * @param t The table to search for the data * @param key The key to merge data for (case does not matter) * @param val The data to add - * @remark If the key is not found, then this function acts like apr_table_add + * @remark If the key is not found, then this function acts like apr_table_add() */ APR_DECLARE(void) apr_table_merge(apr_table_t *t, const char *key, const char *val); @@ -330,7 +330,7 @@ * @param t The table to search for the data * @param key The key to merge data for (case does not matter) * @param val The data to add - * @remark If the key is not found, then this function acts like apr_table_addn + * @remark If the key is not found, then this function acts like apr_table_addn() */ APR_DECLARE(void) apr_table_mergen(apr_table_t *t, const char *key, const char *val); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/apr_version.h new/apr-1.6.5/include/apr_version.h --- old/apr-1.6.3/include/apr_version.h 2017-10-18 16:35:49.000000000 +0200 +++ new/apr-1.6.5/include/apr_version.h 2018-09-10 23:07:14.000000000 +0200 @@ -38,7 +38,7 @@ */ -#define APR_COPYRIGHT "Copyright (c) 2000-2017 The Apache Software " \ +#define APR_COPYRIGHT "Copyright (c) 2000-2018 The Apache Software " \ "Foundation or its licensors, as applicable." /* The numeric compile-time version constants. These constants are the @@ -62,7 +62,7 @@ * The Patch Level never includes API changes, simply bug fixes. * Reset to 0 when upgrading APR_MINOR_VERSION */ -#define APR_PATCH_VERSION 3 +#define APR_PATCH_VERSION 5 /** * The symbol APR_IS_DEV_VERSION is only defined for internal, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/include/arch/unix/apr_private.h.in new/apr-1.6.5/include/arch/unix/apr_private.h.in --- old/apr-1.6.3/include/arch/unix/apr_private.h.in 2017-10-18 16:50:18.000000000 +0200 +++ new/apr-1.6.5/include/arch/unix/apr_private.h.in 2018-09-10 23:14:53.000000000 +0200 @@ -328,6 +328,9 @@ /* Define to 1 if you have the <net/errno.h> header file. */ #undef HAVE_NET_ERRNO_H +/* Define to 1 if you have the <net/if.h> header file. */ +#undef HAVE_NET_IF_H + /* Define to 1 if you have the `nl_langinfo' function. */ #undef HAVE_NL_LANGINFO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/memory/unix/apr_pools.c new/apr-1.6.5/memory/unix/apr_pools.c --- old/apr-1.6.3/memory/unix/apr_pools.c 2017-04-03 13:18:36.000000000 +0200 +++ new/apr-1.6.5/memory/unix/apr_pools.c 2018-04-04 18:41:28.000000000 +0200 @@ -179,7 +179,7 @@ APR_DECLARE(void) apr_allocator_destroy(apr_allocator_t *allocator) { - apr_uint32_t index; + apr_size_t index; apr_memnode_t *node, **ref; for (index = 0; index < MAX_INDEX; index++) { @@ -226,7 +226,7 @@ APR_DECLARE(void) apr_allocator_max_free_set(apr_allocator_t *allocator, apr_size_t in_size) { - apr_uint32_t max_free_index; + apr_size_t max_free_index; apr_size_t size = in_size; #if APR_HAS_THREADS @@ -280,7 +280,7 @@ apr_memnode_t *allocator_alloc(apr_allocator_t *allocator, apr_size_t in_size) { apr_memnode_t *node, **ref; - apr_uint32_t max_index; + apr_size_t max_index; apr_size_t size, i, index; /* Round up the block size to the next boundary, but always @@ -338,7 +338,7 @@ ref--; max_index--; } - while (*ref == NULL && max_index > 0); + while (*ref == NULL && max_index); allocator->max_index = max_index; } @@ -435,8 +435,8 @@ void allocator_free(apr_allocator_t *allocator, apr_memnode_t *node) { apr_memnode_t *next, *freelist = NULL; - apr_uint32_t index, max_index; - apr_uint32_t max_free_index, current_free_index; + apr_size_t index, max_index; + apr_size_t max_free_index, current_free_index; #if APR_HAS_THREADS if (allocator->mutex) @@ -559,7 +559,7 @@ struct debug_node_t { debug_node_t *next; - apr_uint32_t index; + apr_size_t index; void *beginp[64]; void *endp[64]; }; @@ -1814,7 +1814,7 @@ static void pool_clear_debug(apr_pool_t *pool, const char *file_line) { debug_node_t *node; - apr_uint32_t index; + apr_size_t index; /* Run pre destroy cleanups */ run_cleanups(&pool->pre_cleanups); @@ -2230,7 +2230,7 @@ { void **pmem = (void **)data; debug_node_t *node; - apr_uint32_t index; + apr_size_t index; node = pool->nodes; @@ -2263,7 +2263,7 @@ { apr_size_t *psize = (apr_size_t *)data; debug_node_t *node; - apr_uint32_t index; + apr_size_t index; node = pool->nodes; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/misc/unix/errorcodes.c new/apr-1.6.5/misc/unix/errorcodes.c --- old/apr-1.6.3/misc/unix/errorcodes.c 2014-05-09 22:00:14.000000000 +0200 +++ new/apr-1.6.5/misc/unix/errorcodes.c 2018-08-30 04:49:36.000000000 +0200 @@ -369,7 +369,7 @@ /* glibc style */ /* BeOS has the function available, but it doesn't provide - * the prototype publically (doh!), so to avoid a build warning + * the prototype publicly (doh!), so to avoid a build warning * we add a suitable prototype here. */ #if defined(BEOS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/misc/win32/start.c new/apr-1.6.5/misc/win32/start.c --- old/apr-1.6.3/misc/win32/start.c 2011-04-14 09:21:39.000000000 +0200 +++ new/apr-1.6.5/misc/win32/start.c 2018-08-25 23:08:44.000000000 +0200 @@ -39,7 +39,7 @@ * _CRT_BLOCK to trick the system into trusting our store. */ static int warrsztoastr(const char * const * *retarr, - const wchar_t * arrsz, int args) + const wchar_t * arrsz) { const apr_wchar_t *wch; apr_size_t totlen; @@ -48,13 +48,11 @@ char **env; char *pstrs; char *strs; - int arg; + int arg, args; - if (args < 0) { - for (args = 1, wch = arrsz; wch[0] || wch[1]; ++wch) - if (!*wch) - ++args; - } + for (args = 1, wch = arrsz; wch[0] || wch[1]; ++wch) + if (!*wch) + ++args; wsize = 1 + wch - arrsz; /* This is a safe max allocation, we will alloc each @@ -134,7 +132,7 @@ } sysstr = GetEnvironmentStringsW(); - dupenv = warrsztoastr(&_environ, sysstr, -1); + dupenv = warrsztoastr(&_environ, sysstr); if (env) { *env = apr_malloc_dbg((dupenv + 1) * sizeof (char *), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/network_io/unix/sockaddr.c new/apr-1.6.5/network_io/unix/sockaddr.c --- old/apr-1.6.3/network_io/unix/sockaddr.c 2017-09-11 17:29:46.000000000 +0200 +++ new/apr-1.6.5/network_io/unix/sockaddr.c 2017-10-25 15:26:42.000000000 +0200 @@ -277,7 +277,7 @@ return APR_EINVAL; } addrlen = scope_delim - str - 1; - *scope_id = apr_pstrmemdup(p, scope_delim, end_bracket - scope_delim - 1); + *scope_id = apr_pstrmemdup(p, scope_delim + 1, end_bracket - scope_delim - 1); } else { addrlen = addrlen - 2; /* minus 2 for '[' and ']' */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/poll/unix/epoll.c new/apr-1.6.5/poll/unix/epoll.c --- old/apr-1.6.3/poll/unix/epoll.c 2017-09-11 17:23:23.000000000 +0200 +++ new/apr-1.6.5/poll/unix/epoll.c 2018-01-03 10:50:41.000000000 +0100 @@ -274,7 +274,7 @@ } else { int i, j; - apr_pollfd_t *fdptr; + const apr_pollfd_t *fdptr; for (i = 0, j = 0; i < ret; i++) { if (pollset->flags & APR_POLLSET_NOCOPY) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/poll/unix/kqueue.c new/apr-1.6.5/poll/unix/kqueue.c --- old/apr-1.6.3/poll/unix/kqueue.c 2017-09-11 17:23:23.000000000 +0200 +++ new/apr-1.6.5/poll/unix/kqueue.c 2018-01-03 10:50:41.000000000 +0100 @@ -257,7 +257,6 @@ int ret; struct timespec tv, *tvptr; apr_status_t rv = APR_SUCCESS; - apr_pollfd_t fd; *num = 0; @@ -280,17 +279,18 @@ } else { int i, j; + const apr_pollfd_t *fd; for (i = 0, j = 0; i < ret; i++) { - fd = (((pfd_elem_t *)(pollset->p->ke_set[i].udata))->pfd); + fd = &((pfd_elem_t *)pollset->p->ke_set[i].udata)->pfd; if ((pollset->flags & APR_POLLSET_WAKEABLE) && - fd.desc_type == APR_POLL_FILE && - fd.desc.f == pollset->wakeup_pipe[0]) { + fd->desc_type == APR_POLL_FILE && + fd->desc.f == pollset->wakeup_pipe[0]) { apr_poll_drain_wakeup_pipe(pollset->wakeup_pipe); rv = APR_EINTR; } else { - pollset->p->result_set[j] = fd; + pollset->p->result_set[j] = *fd; pollset->p->result_set[j].rtnevents = get_kqueue_revent(pollset->p->ke_set[i].filter, pollset->p->ke_set[i].flags); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/poll/unix/port.c new/apr-1.6.5/poll/unix/port.c --- old/apr-1.6.3/poll/unix/port.c 2017-09-11 17:23:23.000000000 +0200 +++ new/apr-1.6.5/poll/unix/port.c 2018-08-24 23:13:34.000000000 +0200 @@ -354,11 +354,11 @@ const apr_pollfd_t **descriptors) { apr_os_sock_t fd; - int ret, i, j; - unsigned int nget; + int ret; + unsigned int nget, i; + apr_int32_t nres = 0; pfd_elem_t *ep; apr_status_t rv = APR_SUCCESS; - apr_pollfd_t fp; *num = 0; nget = 1; @@ -404,48 +404,41 @@ port_associate within apr_pollset_add() */ apr_atomic_dec32(&pollset->p->waiting); - if (nget) { - - pollset_lock_rings(); + pollset_lock_rings(); - for (i = 0, j = 0; i < nget; i++) { - fp = (((pfd_elem_t*)(pollset->p->port_set[i].portev_user))->pfd); - if ((pollset->flags & APR_POLLSET_WAKEABLE) && - fp.desc_type == APR_POLL_FILE && - fp.desc.f == pollset->wakeup_pipe[0]) { - apr_poll_drain_wakeup_pipe(pollset->wakeup_pipe); - rv = APR_EINTR; - } - else { - pollset->p->result_set[j] = fp; - pollset->p->result_set[j].rtnevents = - get_revent(pollset->p->port_set[i].portev_events); - - /* If the ring element is still on the query ring, move it - * to the add ring for re-association with the event port - * later. (It may have already been moved to the dead ring - * by a call to pollset_remove on another thread.) - */ - ep = (pfd_elem_t *)pollset->p->port_set[i].portev_user; - if (ep->on_query_ring) { - APR_RING_REMOVE(ep, link); - ep->on_query_ring = 0; - APR_RING_INSERT_TAIL(&(pollset->p->add_ring), ep, - pfd_elem_t, link); - } - j++; - } - } - pollset_unlock_rings(); - if ((*num = j)) { /* any event besides wakeup pipe? */ - rv = APR_SUCCESS; - if (descriptors) { - *descriptors = pollset->p->result_set; - } + for (i = 0; i < nget; i++) { + ep = (pfd_elem_t *)pollset->p->port_set[i].portev_user; + if ((pollset->flags & APR_POLLSET_WAKEABLE) && + ep->pfd.desc_type == APR_POLL_FILE && + ep->pfd.desc.f == pollset->wakeup_pipe[0]) { + apr_poll_drain_wakeup_pipe(pollset->wakeup_pipe); + rv = APR_EINTR; + } + else { + pollset->p->result_set[nres] = ep->pfd; + pollset->p->result_set[nres].rtnevents = + get_revent(pollset->p->port_set[i].portev_events); + ++nres; + } + /* If the ring element is still on the query ring, move it + * to the add ring for re-association with the event port + * later. (It may have already been moved to the dead ring + * by a call to pollset_remove on another thread.) + */ + if (ep->on_query_ring) { + APR_RING_REMOVE(ep, link); + ep->on_query_ring = 0; + APR_RING_INSERT_TAIL(&(pollset->p->add_ring), ep, + pfd_elem_t, link); + } + } + if (nres > 0) { /* any event besides wakeup pipe? */ + *num = nres; + rv = APR_SUCCESS; + if (descriptors) { + *descriptors = pollset->p->result_set; } } - - pollset_lock_rings(); /* Shift all PFDs in the Dead Ring to the Free Ring */ APR_RING_CONCAT(&(pollset->p->free_ring), &(pollset->p->dead_ring), pfd_elem_t, link); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/test/sockperf.c new/apr-1.6.5/test/sockperf.c --- old/apr-1.6.3/test/sockperf.c 2013-03-30 15:22:35.000000000 +0100 +++ new/apr-1.6.5/test/sockperf.c 2018-08-25 15:40:26.000000000 +0200 @@ -183,7 +183,7 @@ apr_pool_t *pool) { char *buffer; - apr_status_t rv; + apr_status_t rv = APR_SUCCESS; int i; apr_size_t sz = ts->size * TEST_SIZE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/test/testipsub.c new/apr-1.6.5/test/testipsub.c --- old/apr-1.6.3/test/testipsub.c 2017-09-19 10:09:32.000000000 +0200 +++ new/apr-1.6.5/test/testipsub.c 2017-10-25 15:26:42.000000000 +0200 @@ -165,6 +165,52 @@ "The specified IP address is invalid."); } +static void test_parse_addr_port(abts_case *tc, void *data) +{ + const struct { + const char *input; + apr_status_t rv; + const char *addr, *scope_id; + apr_port_t port; + } *test, testcases[] = { + { "localhost:80", APR_SUCCESS, "localhost", NULL, 80 } + ,{ "www.example.com:8080", APR_SUCCESS, "www.example.com", NULL, 8080 } + ,{ "w:1", APR_SUCCESS, "w", NULL, 1 } + ,{ "127.0.0.1:80", APR_SUCCESS, "127.0.0.1", NULL, 80 } + ,{ "[::]:80", APR_SUCCESS, "::", NULL, 80 } + ,{ "localhost:999999", APR_EINVAL, NULL, NULL, 0 } + ,{ "localhost:0", APR_EINVAL, NULL, NULL, 0 } + ,{ "[::]z:80", APR_EINVAL, NULL, NULL, 0 } + ,{ "[:::80", APR_EINVAL, NULL, NULL, 0 } + ,{ "[zzzz]:80", APR_EINVAL, NULL, NULL, 0 } + ,{ "[::%]:80", APR_EINVAL, NULL, NULL, 0 } + ,{ "[::%eth0]:80", APR_SUCCESS, "::", "eth0", 80 } +/* ,{ "127.0.0.1:80x", APR_EINVAL, NULL, NULL, 0 } <- should fail, doesn't */ +/* ,{ "127.0.0.1x:80", APR_EINVAL, NULL, NULL, 0 } <- maybe should fail?, doesn't */ +/* ,{ "localhost:-1", APR_EINVAL, NULL, NULL, 0 } <- should fail, doesn't */ + }; + unsigned i; + + for (i = 0; i < (sizeof testcases / sizeof testcases[0]); i++) { + char *addr, *scope_id; + apr_port_t port; + apr_status_t rv; + + test = &testcases[i]; + + rv = apr_parse_addr_port(&addr, &scope_id, &port, test->input, p); + ABTS_INT_EQUAL(tc, test->rv, rv); + + if (test->rv != APR_SUCCESS) continue; + + APR_ASSERT_SUCCESS(tc, "parse address", test->rv); + + ABTS_STR_EQUAL(tc, test->addr, addr); + ABTS_STR_EQUAL(tc, test->scope_id, scope_id); + ABTS_INT_EQUAL(tc, test->port, port); + } +} + abts_suite *testipsub(abts_suite *suite) { suite = ADD_SUITE(suite) @@ -174,6 +220,7 @@ abts_run_test(suite, test_interesting_subnets, NULL); abts_run_test(suite, test_badmask_str, NULL); abts_run_test(suite, test_badip_str, NULL); + abts_run_test(suite, test_parse_addr_port, NULL); return suite; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/test/testpoll.c new/apr-1.6.5/test/testpoll.c --- old/apr-1.6.3/test/testpoll.c 2017-01-10 16:59:33.000000000 +0100 +++ new/apr-1.6.5/test/testpoll.c 2018-01-03 10:50:41.000000000 +0100 @@ -783,6 +783,7 @@ apr_pollset_t *pollset; apr_int32_t num; const apr_pollfd_t *descriptors; + int i; rv = apr_pollset_create_ex(&pollset, 1, p, APR_POLLSET_WAKEABLE, default_pollset_impl); @@ -792,12 +793,18 @@ } ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); - /* send wakeup but no data; apr_pollset_poll() should return APR_EINTR */ - rv = apr_pollset_wakeup(pollset); - ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); + /* Send wakeup but no data; apr_pollset_poll() should return APR_EINTR. + * Do it twice to test implementations that need to re-arm the events after + * poll()ing (e.g. APR_POLLSET_PORT), hence verify that the wakeup pipe is + * still in the place afterward. + */ + for (i = 0; i < 2; ++i) { + rv = apr_pollset_wakeup(pollset); + ABTS_INT_EQUAL(tc, APR_SUCCESS, rv); - rv = apr_pollset_poll(pollset, -1, &num, &descriptors); - ABTS_INT_EQUAL(tc, APR_EINTR, rv); + rv = apr_pollset_poll(pollset, -1, &num, &descriptors); + ABTS_INT_EQUAL(tc, APR_EINTR, rv); + } /* send wakeup and data; apr_pollset_poll() should return APR_SUCCESS */ socket_pollfd.desc_type = APR_POLL_SOCKET; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/test/teststr.c new/apr-1.6.5/test/teststr.c --- old/apr-1.6.3/test/teststr.c 2016-03-03 17:11:16.000000000 +0100 +++ new/apr-1.6.5/test/teststr.c 2018-08-25 15:36:20.000000000 +0200 @@ -307,7 +307,7 @@ for (; off < 999999999; off += 999) { apr_strfsize(off, buf); } - for (off = 1; off < LONG_MAX && off > 0; off *= 2) { + for (off = LONG_MAX; off > 1; off /= 2) { apr_strfsize(off, buf); apr_strfsize(off + 1, buf); apr_strfsize(off - 1, buf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apr-1.6.3/time/win32/time.c new/apr-1.6.5/time/win32/time.c --- old/apr-1.6.3/time/win32/time.c 2017-09-11 00:30:34.000000000 +0200 +++ new/apr-1.6.5/time/win32/time.c 2018-09-08 20:09:00.000000000 +0200 @@ -54,9 +54,6 @@ static const int dayoffset[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; - if (tm->wMonth < 1 || tm->wMonth > 12) - return APR_EBADDATE; - /* Note; the caller is responsible for filling in detailed tm_usec, * tm_gmtoff and tm_isdst data when applicable. */ @@ -111,6 +108,7 @@ FileTimeToSystemTime(&ft, &st); /* The Platform SDK documents that SYSTEMTIME/FILETIME are * generally UTC, so no timezone info needed + * The time value makes a roundtrip, st cannot be invalid below. */ SystemTimeToAprExpTime(result, &st); result->tm_usec = (apr_int32_t) (input % APR_USEC_PER_SEC); @@ -127,6 +125,7 @@ FileTimeToSystemTime(&ft, &st); /* The Platform SDK documents that SYSTEMTIME/FILETIME are * generally UTC, so we will simply note the offs used. + * The time value makes a roundtrip, st cannot be invalid below. */ SystemTimeToAprExpTime(result, &st); result->tm_usec = (apr_int32_t) (input % APR_USEC_PER_SEC); @@ -158,6 +157,7 @@ * because FileTimeToLocalFileFime is documented that the * resulting time local file time would have DST relative * to the *present* date, not the date converted. + * The time value makes a roundtrip, localst cannot be invalid below. */ SystemTimeToTzSpecificLocalTime(tz, &st, &localst); SystemTimeToAprExpTime(result, &localst); @@ -187,6 +187,7 @@ TIME_ZONE_INFORMATION tz; /* XXX: This code is simply *wrong*. The time converted will always * map to the *now current* status of daylight savings time. + * The time value makes a roundtrip, st cannot be invalid below. */ FileTimeToLocalFileTime(&ft, &localft); @@ -298,6 +299,9 @@ /* The Platform SDK documents that SYSTEMTIME/FILETIME are * generally UTC, so no timezone info needed */ + if ((*ostime)->wMonth < 1 || (*ostime)->wMonth > 12) + return APR_EBADDATE; + SystemTimeToAprExpTime(aprtime, *ostime); return APR_SUCCESS; } ++++++ apr.keyring ++++++ ++++ 43850 lines (skipped) ++++ between apr.keyring ++++ and /work/SRC/openSUSE:Factory/.apr.new.28833/apr.keyring
