[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1025518: bullseye-pu: package capnproto/0.7.1-1+deb11u1



On Tue, Feb 06, 2024 at 06:01:43PM +0000, Jonathan Wiltshire wrote:
> On Tue, Jul 25, 2023 at 10:19:50PM +0100, Jonathan Wiltshire wrote:
> > Control: tag -1 moreinfo
> > 
> > On Mon, Dec 05, 2022 at 11:22:51PM -0800, tony mancill wrote:
> > > As the upstream author notes in [3], the issue is present in inlined
> > > code, thus applications built against capnproto must be rebuilt against
> > > the patched version.
> > 
> > This doesn't immediately make any of us enthusiastic, it has to be said...
> > Can we get the proposed debdiff at least please?
> > 
> > The hazards are:
> >  - ftbfs in the rdeps in stable
> >  - much reduced testing of proposed-updates vs. for example sid/testing
> > 
> > > The issue for unstable and bookworm is being addressed via an
> > > upload to experimental [4] and a subsequent transition [5].  Easy
> > > enough...
> > > 
> > > For stable (and old-stable), we need to introduce 0.7.1, a new upstream
> > > version that generates a (new) libcapnp-0.7.1 binary package to address
> > > the vulnerability.  Once those are present in the archive, we can
> > > trigger rebuilds of the reverse dependencies.  At this time I am asking
> > > for bullseye.
> > > 
> > > [ Reason ]
> > > This is to address CVE-2022-46149 [1].
> > > 
> > > [ Impact ]
> > > Packages built with capnproto in bullseye will remain potentially
> > > vulnerable to the CVE.
> > > 
> > > [ Tests ]
> > > I have built the package in a clean bullseye chroot and then used ratt to
> > > rebuilt the (8) bullseye r-deps:
> > > 
> > > - clickhouse_18.16.1+ds-7.2
> > > - harvest-tools_1.3-6
> > > - laminar_1.0-3
> > > - librime_1.6.1+dfsg1-1
> > > - mash_2.2.2+dfsg-2
> > > - mir_1.8.0+dfsg1-18
> > > - rr_5.4.0-2
> > > - sonic-visualiser_4.2-1
> > 
> > laminar in particular doesn't seem to have much maintainer attention. If
> > there are problems with the rdeps on rebuild are you going to be in a
> > position to resolve them?

That's a fair question and I don't have a ready answer other than it
depends on how much attention is needed.  I am a member of the backports
ACL now (I wasn't when this was filed), so I can help with uploads, but
I don't have a history with the r-deps.

> > > [ Risks ]
> > > The upstream author has stated that there are no known vulnerable
> > > applications, yet advises that all capnproto users rebuild their
> > > applications using patched versions of capnproto.
> > 
> > An abundance of caution? Otherwise the statements seem at odds with each
> > other.

Agreed.  I don't have a strong sense for the security risk to end users.

> > > If this is not amenable to stable-proposed-updates, would you recommend
> > > backports?
> > 
> > I'm not sure a transition in backports is going to be well received either.
> > Let's start with the debdiff and at least know what we're looking at.
> 
> Ping?

Thank you for the gentle reminder.  I parsed the "not well received"
comment and somehow skimmed past the request for the debdiff, got busy,
etc...

The full debdiff is attached, but it's mostly comprised of
non-functional build system and autoconf drift.  A pared-down diff with
only the packaging and true (semantic) upstream changes is attached as
well.

Thank you,
tony
diff -Nru capnproto-0.7.0/aclocal.m4 capnproto-0.7.1/aclocal.m4
--- capnproto-0.7.0/aclocal.m4	2018-08-28 18:13:57.000000000 -0700
+++ capnproto-0.7.1/aclocal.m4	2022-11-29 07:55:16.000000000 -0800
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@
 [am__api_version='1.16'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.16.1], [],
+m4_if([$1], [1.16.3], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,14 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.3])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -332,7 +332,7 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -371,7 +371,9 @@
   done
   if test $am_rc -ne 0; then
     AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
-    for automatic dependency tracking.  Try re-running configure with the
+    for automatic dependency tracking.  If GNU make was not used, consider
+    re-running the configure script with MAKE="gmake" (or whatever is
+    necessary).  You can also try re-running configure with the
     '--disable-dependency-tracking' option to at least be able to build
     the package (albeit without support for automatic dependency tracking).])
   fi
@@ -398,7 +400,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -595,7 +597,7 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -616,7 +618,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -637,7 +639,7 @@
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -680,7 +682,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -701,12 +703,7 @@
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
 if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
+  MISSING="\${SHELL} '$am_aux_dir/missing'"
 fi
 # Use eval to expand $SHELL
 if eval "$MISSING --is-lightweight"; then
@@ -719,7 +716,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -748,7 +745,7 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -795,7 +792,7 @@
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -814,7 +811,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -895,7 +892,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -955,7 +952,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -983,7 +980,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1002,7 +999,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff -Nru capnproto-0.7.0/build-aux/compile capnproto-0.7.1/build-aux/compile
--- capnproto-0.7.0/build-aux/compile	2018-08-28 18:13:59.000000000 -0700
+++ capnproto-0.7.1/build-aux/compile	2022-11-29 07:55:18.000000000 -0800
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@
 	  MINGW*)
 	    file_conv=mingw
 	    ;;
-	  CYGWIN*)
+	  CYGWIN* | MSYS*)
 	    file_conv=cygwin
 	    ;;
 	  *)
@@ -67,7 +67,7 @@
 	mingw/*)
 	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
 	  ;;
-	cygwin/*)
+	cygwin/* | msys/*)
 	  file=`cygpath -m "$file" || echo "$file"`
 	  ;;
 	wine/*)
diff -Nru capnproto-0.7.0/build-aux/depcomp capnproto-0.7.1/build-aux/depcomp
--- capnproto-0.7.0/build-aux/depcomp	2018-08-28 18:13:59.000000000 -0700
+++ capnproto-0.7.1/build-aux/depcomp	2022-11-29 07:55:18.000000000 -0800
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -Nru capnproto-0.7.0/build-aux/install-sh capnproto-0.7.1/build-aux/install-sh
--- capnproto-0.7.0/build-aux/install-sh	2018-08-28 18:13:59.000000000 -0700
+++ capnproto-0.7.1/build-aux/install-sh	2022-11-29 07:55:18.000000000 -0800
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2018-03-11.20; # UTC
+scriptversion=2020-11-14.01; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,11 @@
 # Desired mode of installed file.
 mode=0755
 
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
 chgrpcmd=
 chmodcmd=$chmodprog
 chowncmd=
@@ -99,18 +104,28 @@
      --version  display version info and exit.
 
   -c            (ignored)
-  -C            install only if different (preserve the last data modification time)
+  -C            install only if different (preserve data modification time)
   -d            create directories instead of installing files.
   -g GROUP      $chgrpprog installed files to GROUP.
   -m MODE       $chmodprog installed files to MODE.
   -o USER       $chownprog installed files to USER.
+  -p            pass -p to $cpprog.
   -s            $stripprog installed files.
+  -S SUFFIX     attempt to back up existing files, with suffix SUFFIX.
   -t DIRECTORY  install into DIRECTORY.
   -T            report an error if DSTFILE is a directory.
 
 Environment variables override the default commands:
   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
   RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to bug-automake@gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
 "
 
 while test $# -ne 0; do
@@ -137,8 +152,13 @@
     -o) chowncmd="$chownprog $2"
         shift;;
 
+    -p) cpprog="$cpprog -p";;
+
     -s) stripcmd=$stripprog;;
 
+    -S) backupsuffix="$2"
+        shift;;
+
     -t)
         is_target_a_directory=always
         dst_arg=$2
@@ -255,6 +275,10 @@
     dstdir=$dst
     test -d "$dstdir"
     dstdir_status=$?
+    # Don't chown directories that already exist.
+    if test $dstdir_status = 0; then
+      chowncmd=""
+    fi
   else
 
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -301,22 +325,6 @@
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-        # Create intermediate dirs using mode 755 as modified by the umask.
-        # This is like FreeBSD 'install' as of 1997-10-28.
-        umask=`umask`
-        case $stripcmd.$umask in
-          # Optimize common cases.
-          *[2367][2367]) mkdir_umask=$umask;;
-          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-          *[0-7])
-            mkdir_umask=`expr $umask + 22 \
-              - $umask % 100 % 40 + $umask % 20 \
-              - $umask % 10 % 4 + $umask % 2
-            `;;
-          *) mkdir_umask=$umask,go-w;;
-        esac
-
         # With -d, create the new directory with the user-specified mode.
         # Otherwise, rely on $mkdir_umask.
         if test -n "$dir_arg"; then
@@ -326,52 +334,49 @@
         fi
 
         posix_mkdir=false
-        case $umask in
-          *[123567][0-7][0-7])
-            # POSIX mkdir -p sets u+wx bits regardless of umask, which
-            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-            ;;
-          *)
-            # Note that $RANDOM variable is not portable (e.g. dash);  Use it
-            # here however when possible just to lower collision chance.
-            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
-            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-            # Because "mkdir -p" follows existing symlinks and we likely work
-            # directly in world-writeable /tmp, make sure that the '$tmpdir'
-            # directory is successfully created first before we actually test
-            # 'mkdir -p' feature.
-            if (umask $mkdir_umask &&
-                $mkdirprog $mkdir_mode "$tmpdir" &&
-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
-            then
-              if test -z "$dir_arg" || {
-                   # Check for POSIX incompatibilities with -m.
-                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                   # other-writable bit of parent directory when it shouldn't.
-                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-                   test_tmpdir="$tmpdir/a"
-                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
-                   case $ls_ld_tmpdir in
-                     d????-?r-*) different_mode=700;;
-                     d????-?--*) different_mode=755;;
-                     *) false;;
-                   esac &&
-                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
-                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
-                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-                   }
-                 }
-              then posix_mkdir=:
-              fi
-              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
-            else
-              # Remove any dirs left behind by ancient mkdir implementations.
-              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
-            fi
-            trap '' 0;;
-        esac;;
+	# The $RANDOM variable is not portable (e.g., dash).  Use it
+	# here however when possible just to lower collision chance.
+	tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+	trap '
+	  ret=$?
+	  rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+	  exit $ret
+	' 0
+
+	# Because "mkdir -p" follows existing symlinks and we likely work
+	# directly in world-writeable /tmp, make sure that the '$tmpdir'
+	# directory is successfully created first before we actually test
+	# 'mkdir -p'.
+	if (umask $mkdir_umask &&
+	    $mkdirprog $mkdir_mode "$tmpdir" &&
+	    exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+	then
+	  if test -z "$dir_arg" || {
+	       # Check for POSIX incompatibilities with -m.
+	       # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+	       # other-writable bit of parent directory when it shouldn't.
+	       # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+	       test_tmpdir="$tmpdir/a"
+	       ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+	       case $ls_ld_tmpdir in
+		 d????-?r-*) different_mode=700;;
+		 d????-?--*) different_mode=755;;
+		 *) false;;
+	       esac &&
+	       $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+		 ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+		 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+	       }
+	     }
+	  then posix_mkdir=:
+	  fi
+	  rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+	else
+	  # Remove any dirs left behind by ancient mkdir implementations.
+	  rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+	fi
+	trap '' 0;;
     esac
 
     if
@@ -382,7 +387,7 @@
     then :
     else
 
-      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # mkdir does not conform to POSIX,
       # or it failed possibly due to a race condition.  Create the
       # directory the slow way, step by step, checking for races as we go.
 
@@ -411,7 +416,7 @@
           prefixes=
         else
           if $posix_mkdir; then
-            (umask=$mkdir_umask &&
+            (umask $mkdir_umask &&
              $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
             # Don't fail if two instances are running concurrently.
             test -d "$prefix" || exit 1
@@ -451,7 +456,18 @@
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
 
     # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+    (umask $cp_umask &&
+     { test -z "$stripcmd" || {
+	 # Create $dsttmp read-write so that cp doesn't create it read-only,
+	 # which would cause strip to fail.
+	 if test -z "$doit"; then
+	   : >"$dsttmp" # No need to fork-exec 'touch'.
+	 else
+	   $doit touch "$dsttmp"
+	 fi
+       }
+     } &&
+     $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -477,6 +493,13 @@
     then
       rm -f "$dsttmp"
     else
+      # If $backupsuffix is set, and the file being installed
+      # already exists, attempt a backup.  Don't worry if it fails,
+      # e.g., if mv doesn't support -f.
+      if test -n "$backupsuffix" && test -f "$dst"; then
+        $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+      fi
+
       # Rename the file to the real destination.
       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
 
@@ -491,9 +514,9 @@
         # file should still install successfully.
         {
           test ! -f "$dst" ||
-          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          $doit $rmcmd "$dst" 2>/dev/null ||
           { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+            { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
           } ||
           { echo "$0: cannot unlink or rename $dst" >&2
             (exit 1); exit 1
diff -Nru capnproto-0.7.0/build-aux/ltmain.sh capnproto-0.7.1/build-aux/ltmain.sh
--- capnproto-0.7.0/build-aux/ltmain.sh	2018-08-28 18:13:55.000000000 -0700
+++ capnproto-0.7.1/build-aux/ltmain.sh	2022-11-29 07:55:15.000000000 -0800
@@ -31,7 +31,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.6 Debian-2.4.6-2.1"
+VERSION="2.4.6 Debian-2.4.6-15"
 package_revision=2.4.6
 
 
@@ -64,7 +64,7 @@
 # libraries, which are installed to $pkgauxdir.
 
 # Set a version string for this script.
-scriptversion=2015-10-12.13; # UTC
+scriptversion=2015-01-20.17; # UTC
 
 # General shell script boiler plate, and helper functions.
 # Written by Gary V. Vaughan, 2004
@@ -387,7 +387,7 @@
 # putting '$debug_cmd' at the start of all your functions, you can get
 # bash to show function call trace with:
 #
-#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+#    debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
 debug_cmd=${debug_cmd-":"}
 exit_cmd=:
 
@@ -580,16 +580,16 @@
   {
     $debug_cmd
 
-    func_quote_arg pretty "$2"
-    eval "$1+=\\ \$func_quote_arg_result"
+    func_quote_for_eval "$2"
+    eval "$1+=\\ \$func_quote_for_eval_result"
   }'
 else
   func_append_quoted ()
   {
     $debug_cmd
 
-    func_quote_arg pretty "$2"
-    eval "$1=\$$1\\ \$func_quote_arg_result"
+    func_quote_for_eval "$2"
+    eval "$1=\$$1\\ \$func_quote_for_eval_result"
   }
 fi
 
@@ -1091,181 +1091,85 @@
 }
 
 
-# func_quote_portable EVAL ARG
-# ----------------------------
-# Internal function to portably implement func_quote_arg.  Note that we still
-# keep attention to performance here so we as much as possible try to avoid
-# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
-func_quote_portable ()
+# func_quote_for_eval ARG...
+# --------------------------
+# Aesthetically quote ARGs to be evaled later.
+# This function returns two values:
+#   i) func_quote_for_eval_result
+#      double-quoted, suitable for a subsequent eval
+#  ii) func_quote_for_eval_unquoted_result
+#      has all characters that are still active within double
+#      quotes backslashified.
+func_quote_for_eval ()
 {
     $debug_cmd
 
-    func_quote_portable_result=$2
-
-    # one-time-loop (easy break)
-    while true
-    do
-      if $1; then
-        func_quote_portable_result=`$ECHO "$2" | $SED \
-          -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
-        break
-      fi
-
-      # Quote for eval.
-      case $func_quote_portable_result in
+    func_quote_for_eval_unquoted_result=
+    func_quote_for_eval_result=
+    while test 0 -lt $#; do
+      case $1 in
         *[\\\`\"\$]*)
-          case $func_quote_portable_result in
-            *[\[\*\?]*)
-              func_quote_portable_result=`$ECHO "$func_quote_portable_result" | $SED "$sed_quote_subst"`
-              break
-              ;;
-          esac
+	  _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+        *)
+          _G_unquoted_arg=$1 ;;
+      esac
+      if test -n "$func_quote_for_eval_unquoted_result"; then
+	func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+      else
+        func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+      fi
 
-          func_quote_portable_old_IFS=$IFS
-          for _G_char in '\' '`' '"' '$'
-          do
-            # STATE($1) PREV($2) SEPARATOR($3)
-            set start "" ""
-            func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
-            IFS=$_G_char
-            for _G_part in $func_quote_portable_result
-            do
-              case $1 in
-              quote)
-                func_append func_quote_portable_result "$3$2"
-                set quote "$_G_part" "\\$_G_char"
-                ;;
-              start)
-                set first "" ""
-                func_quote_portable_result=
-                ;;
-              first)
-                set quote "$_G_part" ""
-                ;;
-              esac
-            done
-          done
-          IFS=$func_quote_portable_old_IFS
+      case $_G_unquoted_arg in
+        # Double-quote args containing shell metacharacters to delay
+        # word splitting, command substitution and variable expansion
+        # for a subsequent eval.
+        # Many Bourne shells cannot handle close brackets correctly
+        # in scan sets, so we specify it separately.
+        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+          _G_quoted_arg=\"$_G_unquoted_arg\"
           ;;
-        *) ;;
+        *)
+          _G_quoted_arg=$_G_unquoted_arg
+	  ;;
       esac
-      break
-    done
 
-    func_quote_portable_unquoted_result=$func_quote_portable_result
-    case $func_quote_portable_result in
-      # double-quote args containing shell metacharacters to delay
-      # word splitting, command substitution and variable expansion
-      # for a subsequent eval.
-      # many bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        func_quote_portable_result=\"$func_quote_portable_result\"
-        ;;
-    esac
+      if test -n "$func_quote_for_eval_result"; then
+	func_append func_quote_for_eval_result " $_G_quoted_arg"
+      else
+        func_append func_quote_for_eval_result "$_G_quoted_arg"
+      fi
+      shift
+    done
 }
 
 
-# func_quotefast_eval ARG
-# -----------------------
-# Quote one ARG (internal).  This is equivalent to 'func_quote_arg eval ARG',
-# but optimized for speed.  Result is stored in $func_quotefast_eval.
-if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
-  func_quotefast_eval ()
-  {
-    printf -v func_quotefast_eval_result %q "$1"
-  }
-else
-  func_quotefast_eval ()
-  {
-    func_quote_portable false "$1"
-    func_quotefast_eval_result=$func_quote_portable_result
-  }
-fi
-
+# func_quote_for_expand ARG
+# -------------------------
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    $debug_cmd
 
-# func_quote_arg MODEs ARG
-# ------------------------
-# Quote one ARG to be evaled later.  MODEs argument may contain zero ore more
-# specifiers listed below separated by ',' character.  This function returns two
-# values:
-#   i) func_quote_arg_result
-#      double-quoted (when needed), suitable for a subsequent eval
-#  ii) func_quote_arg_unquoted_result
-#      has all characters that are still active within double
-#      quotes backslashified.  Available only if 'unquoted' is specified.
-#
-# Available modes:
-# ----------------
-# 'eval' (default)
-#       - escape shell special characters
-# 'expand'
-#       - the same as 'eval';  but do not quote variable references
-# 'pretty'
-#       - request aesthetic output, i.e. '"a b"' instead of 'a\ b'.  This might
-#         later used in func_quote to get output like: 'echo "a b"' instead of
-#         'echo a\ b'.  This is slower than default on some shells.
-# 'unquoted'
-#       - produce also $func_quote_arg_unquoted_result which does not contain
-#         wrapping double-quotes.
-#
-# Examples for 'func_quote_arg pretty,unquoted string':
-#
-#   string      | *_result              | *_unquoted_result
-#   ------------+-----------------------+-------------------
-#   "           | \"                    | \"
-#   a b         | "a b"                 | a b
-#   "a b"       | "\"a b\""             | \"a b\"
-#   *           | "*"                   | *
-#   z="${x-$y}" | "z=\"\${x-\$y}\""     | z=\"\${x-\$y}\"
-#
-# Examples for 'func_quote_arg pretty,unquoted,expand string':
-#
-#   string        |   *_result          |  *_unquoted_result
-#   --------------+---------------------+--------------------
-#   z="${x-$y}"   | "z=\"${x-$y}\""     | z=\"${x-$y}\"
-func_quote_arg ()
-{
-    _G_quote_expand=false
-    case ,$1, in
-      *,expand,*)
-        _G_quote_expand=:
-        ;;
+    case $1 in
+      *[\\\`\"]*)
+	_G_arg=`$ECHO "$1" | $SED \
+	    -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        _G_arg=$1 ;;
     esac
 
-    case ,$1, in
-      *,pretty,*|*,expand,*|*,unquoted,*)
-        func_quote_portable $_G_quote_expand "$2"
-        func_quote_arg_result=$func_quote_portable_result
-        func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
-        ;;
-      *)
-        # Faster quote-for-eval for some shells.
-        func_quotefast_eval "$2"
-        func_quote_arg_result=$func_quotefast_eval_result
+    case $_G_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        _G_arg=\"$_G_arg\"
         ;;
     esac
-}
-
 
-# func_quote MODEs ARGs...
-# ------------------------
-# Quote all ARGs to be evaled later and join them into single command.  See
-# func_quote_arg's description for more info.
-func_quote ()
-{
-    $debug_cmd
-    _G_func_quote_mode=$1 ; shift
-    func_quote_result=
-    while test 0 -lt $#; do
-      func_quote_arg "$_G_func_quote_mode" "$1"
-      if test -n "$func_quote_result"; then
-        func_append func_quote_result " $func_quote_arg_result"
-      else
-        func_append func_quote_result "$func_quote_arg_result"
-      fi
-      shift
-    done
+    func_quote_for_expand_result=$_G_arg
 }
 
 
@@ -1311,8 +1215,8 @@
     _G_cmd=$1
     _G_fail_exp=${2-':'}
 
-    func_quote_arg pretty,expand "$_G_cmd"
-    eval "func_notquiet $func_quote_arg_result"
+    func_quote_for_expand "$_G_cmd"
+    eval "func_notquiet $func_quote_for_expand_result"
 
     $opt_dry_run || {
       eval "$_G_cmd"
@@ -1337,8 +1241,8 @@
     _G_fail_exp=${2-':'}
 
     $opt_quiet || {
-      func_quote_arg expand,pretty "$_G_cmd"
-      eval "func_echo $func_quote_arg_result"
+      func_quote_for_expand "$_G_cmd"
+      eval "func_echo $func_quote_for_expand_result"
     }
 
     $opt_dry_run || {
@@ -1466,7 +1370,7 @@
 #! /bin/sh
 
 # Set a version string for this script.
-scriptversion=2015-10-12.13; # UTC
+scriptversion=2015-10-07.11; # UTC
 
 # A portable, pluggable option parser for Bourne shell.
 # Written by Gary V. Vaughan, 2010
@@ -1676,8 +1580,8 @@
 #    '
 #        # No change in '$@' (ignored completely by this hook).  There is
 #        # no need to do the equivalent (but slower) action:
-#        # func_quote eval ${1+"$@"}
-#        # my_options_prep_result=$func_quote_result
+#        # func_quote_for_eval ${1+"$@"}
+#        # my_options_prep_result=$func_quote_for_eval_result
 #        false
 #    }
 #    func_add_hook func_options_prep my_options_prep
@@ -1713,8 +1617,8 @@
 #        done
 #
 #        if $args_changed; then
-#          func_quote eval ${1+"$@"}
-#          my_silent_option_result=$func_quote_result
+#          func_quote_for_eval ${1+"$@"}
+#          my_silent_option_result=$func_quote_for_eval_result
 #        fi
 #
 #        $args_changed
@@ -1781,8 +1685,8 @@
     if $_G_rc_options; then
       func_options_result=$_G_res_var
     else
-      func_quote eval ${1+"$@"}
-      func_options_result=$func_quote_result
+      func_quote_for_eval ${1+"$@"}
+      func_options_result=$func_quote_for_eval_result
     fi
 
     $_G_rc_options
@@ -1925,8 +1829,8 @@
 
     if $_G_rc_parse_options; then
       # save modified positional parameters for caller
-      func_quote eval ${1+"$@"}
-      func_parse_options_result=$func_quote_result
+      func_quote_for_eval ${1+"$@"}
+      func_parse_options_result=$func_quote_for_eval_result
     fi
 
     $_G_rc_parse_options
@@ -2237,7 +2141,7 @@
        compiler:       $LTCC
        compiler flags: $LTCFLAGS
        linker:         $LD (gnu? $with_gnu_ld)
-       version:        $progname $scriptversion Debian-2.4.6-2.1
+       version:        $progname $scriptversion Debian-2.4.6-15
        automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
        autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
 
@@ -2471,8 +2375,8 @@
 
     if $_G_rc_lt_options_prep; then
       # Pass back the list of options.
-      func_quote eval ${1+"$@"}
-      libtool_options_prep_result=$func_quote_result
+      func_quote_for_eval ${1+"$@"}
+      libtool_options_prep_result=$func_quote_for_eval_result
     fi
 
     $_G_rc_lt_options_prep
@@ -2578,8 +2482,8 @@
 
     if $_G_rc_lt_parse_options; then
       # save modified positional parameters for caller
-      func_quote eval ${1+"$@"}
-      libtool_parse_options_result=$func_quote_result
+      func_quote_for_eval ${1+"$@"}
+      libtool_parse_options_result=$func_quote_for_eval_result
     fi
 
     $_G_rc_lt_parse_options
@@ -2639,8 +2543,8 @@
     }
 
     # Pass back the unparsed argument list
-    func_quote eval ${1+"$@"}
-    libtool_validate_options_result=$func_quote_result
+    func_quote_for_eval ${1+"$@"}
+    libtool_validate_options_result=$func_quote_for_eval_result
 }
 func_add_hook func_validate_options libtool_validate_options
 
@@ -3606,8 +3510,8 @@
       esac
     done
 
-    func_quote_arg pretty "$libobj"
-    test "X$libobj" != "X$func_quote_arg_result" \
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
       && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
       && func_warning "libobj name '$libobj' may not contain shell special characters."
     func_dirname_and_basename "$obj" "/" ""
@@ -3680,8 +3584,8 @@
 
     func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
     srcfile=$func_to_tool_file_result
-    func_quote_arg pretty "$srcfile"
-    qsrcfile=$func_quote_arg_result
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
 
     # Only build a PIC object if we are building libtool libraries.
     if test yes = "$build_libtool_libs"; then
@@ -4284,8 +4188,8 @@
        case $nonopt in *shtool*) :;; *) false;; esac
     then
       # Aesthetically quote it.
-      func_quote_arg pretty "$nonopt"
-      install_prog="$func_quote_arg_result "
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
       arg=$1
       shift
     else
@@ -4295,8 +4199,8 @@
 
     # The real first argument should be the name of the installation program.
     # Aesthetically quote it.
-    func_quote_arg pretty "$arg"
-    func_append install_prog "$func_quote_arg_result"
+    func_quote_for_eval "$arg"
+    func_append install_prog "$func_quote_for_eval_result"
     install_shared_prog=$install_prog
     case " $install_prog " in
       *[\\\ /]cp\ *) install_cp=: ;;
@@ -4353,12 +4257,12 @@
       esac
 
       # Aesthetically quote the argument.
-      func_quote_arg pretty "$arg"
-      func_append install_prog " $func_quote_arg_result"
+      func_quote_for_eval "$arg"
+      func_append install_prog " $func_quote_for_eval_result"
       if test -n "$arg2"; then
-	func_quote_arg pretty "$arg2"
+	func_quote_for_eval "$arg2"
       fi
-      func_append install_shared_prog " $func_quote_arg_result"
+      func_append install_shared_prog " $func_quote_for_eval_result"
     done
 
     test -z "$install_prog" && \
@@ -4369,8 +4273,8 @@
 
     if test -n "$install_override_mode" && $no_mode; then
       if $install_cp; then :; else
-	func_quote_arg pretty "$install_override_mode"
-	func_append install_shared_prog " -m $func_quote_arg_result"
+	func_quote_for_eval "$install_override_mode"
+	func_append install_shared_prog " -m $func_quote_for_eval_result"
       fi
     fi
 
@@ -4666,8 +4570,8 @@
 	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
 	        $opt_quiet || {
-	          func_quote_arg expand,pretty "$relink_command"
-		  eval "func_echo $func_quote_arg_result"
+	          func_quote_for_expand "$relink_command"
+		  eval "func_echo $func_quote_for_expand_result"
 	        }
 	        if eval "$relink_command"; then :
 	          else
@@ -5446,8 +5350,7 @@
   if test \"\$libtool_execute_magic\" != \"$magic\"; then
     file=\"\$0\""
 
-    func_quote_arg pretty "$ECHO"
-    qECHO=$func_quote_arg_result
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
     $ECHO "\
 
 # A function that is used when there is no print builtin or printf.
@@ -5457,7 +5360,7 @@
 \$1
 _LTECHO_EOF'
 }
-    ECHO=$qECHO
+    ECHO=\"$qECHO\"
   fi
 
 # Very basic option parsing. These options are (a) specific to
@@ -6800,9 +6703,9 @@
     while test "$#" -gt 0; do
       arg=$1
       shift
-      func_quote_arg pretty,unquoted "$arg"
-      qarg=$func_quote_arg_unquoted_result
-      func_append libtool_args " $func_quote_arg_result"
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
 
       # If the previous option needs an argument, assign it.
       if test -n "$prev"; then
@@ -7400,9 +7303,9 @@
 	save_ifs=$IFS; IFS=,
 	for flag in $args; do
 	  IFS=$save_ifs
-          func_quote_arg pretty "$flag"
-	  func_append arg " $func_quote_arg_result"
-	  func_append compiler_flags " $func_quote_arg_result"
+          func_quote_for_eval "$flag"
+	  func_append arg " $func_quote_for_eval_result"
+	  func_append compiler_flags " $func_quote_for_eval_result"
 	done
 	IFS=$save_ifs
 	func_stripname ' ' '' "$arg"
@@ -7416,10 +7319,10 @@
 	save_ifs=$IFS; IFS=,
 	for flag in $args; do
 	  IFS=$save_ifs
-          func_quote_arg pretty "$flag"
-	  func_append arg " $wl$func_quote_arg_result"
-	  func_append compiler_flags " $wl$func_quote_arg_result"
-	  func_append linker_flags " $func_quote_arg_result"
+          func_quote_for_eval "$flag"
+	  func_append arg " $wl$func_quote_for_eval_result"
+	  func_append compiler_flags " $wl$func_quote_for_eval_result"
+	  func_append linker_flags " $func_quote_for_eval_result"
 	done
 	IFS=$save_ifs
 	func_stripname ' ' '' "$arg"
@@ -7443,8 +7346,8 @@
 
       # -msg_* for osf cc
       -msg_*)
-	func_quote_arg pretty "$arg"
-	arg=$func_quote_arg_result
+	func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
 	;;
 
       # Flags to be passed through unchanged, with rationale:
@@ -7464,12 +7367,15 @@
       # -specs=*             GCC specs files
       # -stdlib=*            select c++ std lib with clang
       # -fsanitize=*         Clang/GCC memory and address sanitizer
+      # -fuse-ld=*           Linker select flags for GCC
+      # -static-*            direct GCC to link specific libraries statically
+      # -fcilkplus           Cilk Plus language extension features for C/C++
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
       -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
-      -specs=*|-fsanitize=*)
-        func_quote_arg pretty "$arg"
-	arg=$func_quote_arg_result
+      -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus)
+        func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
         func_append compiler_flags " $arg"
@@ -7490,15 +7396,15 @@
 	  continue
         else
 	  # Otherwise treat like 'Some other compiler flag' below
-	  func_quote_arg pretty "$arg"
-	  arg=$func_quote_arg_result
+	  func_quote_for_eval "$arg"
+	  arg=$func_quote_for_eval_result
         fi
 	;;
 
       # Some other compiler flag.
       -* | +*)
-        func_quote_arg pretty "$arg"
-	arg=$func_quote_arg_result
+        func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
 	;;
 
       *.$objext)
@@ -7618,8 +7524,8 @@
       *)
 	# Unknown arguments in both finalize_command and compile_command need
 	# to be aesthetically quoted because they are evaled later.
-	func_quote_arg pretty "$arg"
-	arg=$func_quote_arg_result
+	func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
 	;;
       esac # arg
 
@@ -10131,8 +10037,8 @@
 	    for cmd in $concat_cmds; do
 	      IFS=$save_ifs
 	      $opt_quiet || {
-		  func_quote_arg expand,pretty "$cmd"
-		  eval "func_echo $func_quote_arg_result"
+		  func_quote_for_expand "$cmd"
+		  eval "func_echo $func_quote_for_expand_result"
 	      }
 	      $opt_dry_run || eval "$cmd" || {
 		lt_exit=$?
@@ -10225,8 +10131,8 @@
 	  eval cmd=\"$cmd\"
 	  IFS=$save_ifs
 	  $opt_quiet || {
-	    func_quote_arg expand,pretty "$cmd"
-	    eval "func_echo $func_quote_arg_result"
+	    func_quote_for_expand "$cmd"
+	    eval "func_echo $func_quote_for_expand_result"
 	  }
 	  $opt_dry_run || eval "$cmd" || {
 	    lt_exit=$?
@@ -10700,12 +10606,12 @@
 	  elif eval var_value=\$$var; test -z "$var_value"; then
 	    relink_command="$var=; export $var; $relink_command"
 	  else
-	    func_quote_arg pretty "$var_value"
-	    relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
+	    func_quote_for_eval "$var_value"
+	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 	  fi
 	done
-	func_quote_arg pretty,unquoted "(cd `pwd`; $relink_command)"
-	relink_command=$func_quote_arg_unquoted_result
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       fi
 
       # Only actually do things if not in dry run mode.
@@ -10945,14 +10851,13 @@
 	elif eval var_value=\$$var; test -z "$var_value"; then
 	  relink_command="$var=; export $var; $relink_command"
 	else
-	  func_quote_arg pretty,unquoted "$var_value"
-	  relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
+	  func_quote_for_eval "$var_value"
+	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
 	fi
       done
       # Quote the link command for shipping.
       relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      func_quote_arg pretty,unquoted "$relink_command"
-      relink_command=$func_quote_arg_unquoted_result
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       if test yes = "$hardcode_automatic"; then
 	relink_command=
       fi
diff -Nru capnproto-0.7.0/build-aux/missing capnproto-0.7.1/build-aux/missing
--- capnproto-0.7.0/build-aux/missing	2018-08-28 18:13:59.000000000 -0700
+++ capnproto-0.7.1/build-aux/missing	2022-11-29 07:55:18.000000000 -0800
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
diff -Nru capnproto-0.7.0/build-aux/test-driver capnproto-0.7.1/build-aux/test-driver
--- capnproto-0.7.0/build-aux/test-driver	2018-08-28 18:13:59.000000000 -0700
+++ capnproto-0.7.1/build-aux/test-driver	2022-11-29 07:55:18.000000000 -0800
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -42,11 +42,13 @@
 {
   cat <<END
 Usage:
-  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
-              [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--]
+  test-driver --test-name NAME --log-file PATH --trs-file PATH
+              [--expect-failure {yes|no}] [--color-tests {yes|no}]
+              [--enable-hard-errors {yes|no}] [--]
               TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+
 The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+See the GNU Automake documentation for information.
 END
 }
 
diff -Nru capnproto-0.7.0/CMakeLists.txt capnproto-0.7.1/CMakeLists.txt
--- capnproto-0.7.0/CMakeLists.txt	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/CMakeLists.txt	2022-11-29 07:55:12.000000000 -0800
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 3.1)
 project("Cap'n Proto" CXX)
-set(VERSION 0.7.0)
+set(VERSION 0.7.1)
 
 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 
diff -Nru capnproto-0.7.0/configure capnproto-0.7.1/configure
--- capnproto-0.7.0/configure	2018-08-28 18:13:58.000000000 -0700
+++ capnproto-0.7.1/configure	2022-11-29 07:55:17.000000000 -0800
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Capn Proto 0.7.0.
+# Generated by GNU Autoconf 2.69 for Capn Proto 0.7.1.
 #
 # Report bugs to <capnproto@googlegroups.com>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='Capn Proto'
 PACKAGE_TARNAME='capnproto-c++'
-PACKAGE_VERSION='0.7.0'
-PACKAGE_STRING='Capn Proto 0.7.0'
+PACKAGE_VERSION='0.7.1'
+PACKAGE_STRING='Capn Proto 0.7.1'
 PACKAGE_BUGREPORT='capnproto@googlegroups.com'
 PACKAGE_URL=''
 
@@ -1358,7 +1358,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Capn Proto 0.7.0 to adapt to many kinds of systems.
+\`configure' configures Capn Proto 0.7.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1429,7 +1429,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Capn Proto 0.7.0:";;
+     short | recursive ) echo "Configuration of Capn Proto 0.7.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1557,7 +1557,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Capn Proto configure 0.7.0
+Capn Proto configure 0.7.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2272,7 +2272,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Capn Proto $as_me 0.7.0, which was
+It was created by Capn Proto $as_me 0.7.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2840,12 +2840,7 @@
 am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
+  MISSING="\${SHELL} '$am_aux_dir/missing'"
 fi
 # Use eval to expand $SHELL
 if eval "$MISSING --is-lightweight"; then
@@ -3150,7 +3145,7 @@
 
 # Define the identity of the package.
  PACKAGE='capnproto-c++'
- VERSION='0.7.0'
+ VERSION='0.7.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -7427,7 +7422,7 @@
 fi
 
 : ${AR=ar}
-: ${AR_FLAGS=cru}
+: ${AR_FLAGS=cr}
 
 
 
@@ -7928,11 +7923,8 @@
   test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s "$nlist"; then
+    $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
+    if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
 	mv -f "$nlist"T "$nlist"
@@ -9151,8 +9143,8 @@
 _LT_EOF
       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
-      echo "$AR cru libconftest.a conftest.o" >&5
-      $AR cru libconftest.a conftest.o 2>&5
+      echo "$AR cr libconftest.a conftest.o" >&5
+      $AR cr libconftest.a conftest.o 2>&5
       echo "$RANLIB libconftest.a" >&5
       $RANLIB libconftest.a 2>&5
       cat > conftest.c << _LT_EOF
@@ -9184,11 +9176,11 @@
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+	10.0,*86*-darwin8*|10.0,*-darwin[912]*)
 	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
 	10.[012][,.]*)
 	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
-	10.*)
+	10.*|11.*)
 	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
@@ -10291,6 +10283,12 @@
 	lt_prog_compiler_pic='-KPIC'
 	lt_prog_compiler_static='-static'
         ;;
+      # flang / f18. f95 an alias for gfortran or flang on Debian
+      flang* | f18* | f95*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fPIC'
+	lt_prog_compiler_static='-static'
+        ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
       icc* | ifort*)
@@ -14233,7 +14231,7 @@
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 
     else
       GXX=no
@@ -14725,7 +14723,7 @@
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test yes = "$GXX"; then
@@ -14790,7 +14788,7 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
           *)
 	    if test yes = "$GXX"; then
@@ -15129,7 +15127,7 @@
 	      # Commands to make compiler produce verbose output that lists
 	      # what "hidden" libraries, object files and flags are used when
 	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 
 	    else
 	      # FIXME: insert proper C++ library support
@@ -15213,7 +15211,7 @@
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 	      else
 	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
 	        # platform.
@@ -15224,7 +15222,7 @@
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 	      fi
 
 	      hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
@@ -18036,7 +18034,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Capn Proto $as_me 0.7.0, which was
+This file was extended by Capn Proto $as_me 0.7.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18102,7 +18100,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Capn Proto config.status 0.7.0
+Capn Proto config.status 0.7.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -19302,7 +19300,9 @@
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "Something went wrong bootstrapping makefile fragments
-    for automatic dependency tracking.  Try re-running configure with the
+    for automatic dependency tracking.  If GNU make was not used, consider
+    re-running the configure script with MAKE=\"gmake\" (or whatever is
+    necessary).  You can also try re-running configure with the
     '--disable-dependency-tracking' option to at least be able to build
     the package (albeit without support for automatic dependency tracking).
 See \`config.log' for more details" "$LINENO" 5; }
diff -Nru capnproto-0.7.0/configure.ac capnproto-0.7.1/configure.ac
--- capnproto-0.7.0/configure.ac	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/configure.ac	2022-11-29 07:55:12.000000000 -0800
@@ -1,6 +1,6 @@
 ## Process this file with autoconf to produce configure.
 
-AC_INIT([Capn Proto],[0.7.0],[capnproto@googlegroups.com],[capnproto-c++])
+AC_INIT([Capn Proto],[0.7.1],[capnproto@googlegroups.com],[capnproto-c++])
 
 AC_CONFIG_SRCDIR([src/capnp/layout.c++])
 AC_CONFIG_AUX_DIR([build-aux])
diff -Nru capnproto-0.7.0/debian/changelog capnproto-0.7.1/debian/changelog
--- capnproto-0.7.0/debian/changelog	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/changelog	2022-12-04 16:40:06.000000000 -0800
@@ -1,3 +1,10 @@
+capnproto (0.7.1-1+deb11u1) bullseye; urgency=medium
+
+  * New upstream version 0.7.1
+    Addresses CVE-2022-46149
+
+ -- tony mancill <tmancill@debian.org>  Sun, 04 Dec 2022 16:40:06 -0800
+
 capnproto (0.7.0-7) unstable; urgency=medium
 
   * Disable failing test when interface is IPv6-only (Closes: #963855)
diff -Nru capnproto-0.7.0/debian/control capnproto-0.7.1/debian/control
--- capnproto-0.7.0/debian/control	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/control	2022-12-04 16:40:06.000000000 -0800
@@ -11,7 +11,7 @@
 Vcs-Browser: https://github.com/thomaslee/capnproto-debian
 Rules-Requires-Root: no
 
-Package: libcapnp-0.7.0
+Package: libcapnp-0.7.1
 Architecture: any
 Multi-Arch: same
 Section: libs
@@ -33,7 +33,7 @@
 Architecture: any
 Multi-Arch: same
 Section: libdevel
-Depends: ${misc:Depends}, libcapnp-0.7.0 (= ${binary:Version})
+Depends: ${misc:Depends}, libcapnp-0.7.1 (= ${binary:Version})
 Description: Cap'n Proto C++ library (development files)
  Similar to Protocol Buffers, Cap'n Proto is an efficient means of
  serializing structured data to be transferred across a network or
@@ -52,7 +52,7 @@
 Architecture: any
 Multi-Arch: foreign
 Depends: ${shlibs:Depends}, ${misc:Depends},
- libcapnp-0.7.0 (= ${binary:Version})
+ libcapnp-0.7.1 (= ${binary:Version})
 Description: tool for working with the Cap'n Proto data interchange format
  Similar to Protocol Buffers, Cap'n Proto is an efficient means of
  serializing structured data to be transferred across a network or
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.0.install capnproto-0.7.1/debian/libcapnp-0.7.0.install
--- capnproto-0.7.0/debian/libcapnp-0.7.0.install	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/libcapnp-0.7.0.install	1969-12-31 16:00:00.000000000 -0800
@@ -1,8 +0,0 @@
-usr/lib/*/libcapnp-0.7.0.so
-usr/lib/*/libcapnp-json-0.7.0.so
-usr/lib/*/libcapnp-rpc-0.7.0.so
-usr/lib/*/libcapnpc-*.so
-usr/lib/*/libkj-0.7.0.so
-usr/lib/*/libkj-async-0.7.0.so
-usr/lib/*/libkj-http-0.7.0.so
-usr/lib/*/libkj-test-0.7.0.so
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.0.lintian-overrides capnproto-0.7.1/debian/libcapnp-0.7.0.lintian-overrides
--- capnproto-0.7.0/debian/libcapnp-0.7.0.lintian-overrides	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/libcapnp-0.7.0.lintian-overrides	1969-12-31 16:00:00.000000000 -0800
@@ -1,3 +0,0 @@
-libcapnp-0.7.0 binary: no-symbols-control-file usr/lib/*
-libcapnp-0.7.0 binary: spelling-error-in-binary usr/lib/*/libcapnp-rpc-*.so capTable *
-
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.0.shlibs capnproto-0.7.1/debian/libcapnp-0.7.0.shlibs
--- capnproto-0.7.0/debian/libcapnp-0.7.0.shlibs	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/libcapnp-0.7.0.shlibs	1969-12-31 16:00:00.000000000 -0800
@@ -1,8 +0,0 @@
-libcapnp 0.7.0 libcapnp-0.7.0
-libcapnp-json 0.7.0 libcapnp-0.7.0
-libcapnp-rpc 0.7.0 libcapnp-0.7.0
-libcapnpc 0.7.0 libcapnp-0.7.0
-libkj 0.7.0 libcapnp-0.7.0
-libkj-async 0.7.0 libcapnp-0.7.0
-libkj-http 0.7.0 libcapnp-0.7.0
-libkj-test 0.7.0 libcapnp-0.7.0
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.1.install capnproto-0.7.1/debian/libcapnp-0.7.1.install
--- capnproto-0.7.0/debian/libcapnp-0.7.1.install	1969-12-31 16:00:00.000000000 -0800
+++ capnproto-0.7.1/debian/libcapnp-0.7.1.install	2022-12-04 16:40:06.000000000 -0800
@@ -0,0 +1,8 @@
+usr/lib/*/libcapnp-0.7.1.so
+usr/lib/*/libcapnp-json-0.7.1.so
+usr/lib/*/libcapnp-rpc-0.7.1.so
+usr/lib/*/libcapnpc-*.so
+usr/lib/*/libkj-0.7.1.so
+usr/lib/*/libkj-async-0.7.1.so
+usr/lib/*/libkj-http-0.7.1.so
+usr/lib/*/libkj-test-0.7.1.so
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.1.lintian-overrides capnproto-0.7.1/debian/libcapnp-0.7.1.lintian-overrides
--- capnproto-0.7.0/debian/libcapnp-0.7.1.lintian-overrides	1969-12-31 16:00:00.000000000 -0800
+++ capnproto-0.7.1/debian/libcapnp-0.7.1.lintian-overrides	2022-12-04 16:40:06.000000000 -0800
@@ -0,0 +1,3 @@
+libcapnp-0.7.1 binary: no-symbols-control-file usr/lib/*
+libcapnp-0.7.1 binary: spelling-error-in-binary usr/lib/*/libcapnp-rpc-*.so capTable *
+
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.1.shlibs capnproto-0.7.1/debian/libcapnp-0.7.1.shlibs
--- capnproto-0.7.0/debian/libcapnp-0.7.1.shlibs	1969-12-31 16:00:00.000000000 -0800
+++ capnproto-0.7.1/debian/libcapnp-0.7.1.shlibs	2022-12-04 16:40:06.000000000 -0800
@@ -0,0 +1,8 @@
+libcapnp 0.7.1 libcapnp-0.7.1
+libcapnp-json 0.7.1 libcapnp-0.7.1
+libcapnp-rpc 0.7.1 libcapnp-0.7.1
+libcapnpc 0.7.1 libcapnp-0.7.1
+libkj 0.7.1 libcapnp-0.7.1
+libkj-async 0.7.1 libcapnp-0.7.1
+libkj-http 0.7.1 libcapnp-0.7.1
+libkj-test 0.7.1 libcapnp-0.7.1
diff -Nru capnproto-0.7.0/debian/tests/build-tests capnproto-0.7.1/debian/tests/build-tests
--- capnproto-0.7.0/debian/tests/build-tests	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/tests/build-tests	2022-12-04 16:40:06.000000000 -0800
@@ -91,7 +91,7 @@
   if [[ "$?" != 0 ]]; then
     fail "compile failed"
   fi
-  assertEquals "0.7.0" "$("$WORKDIR/version-test")"
+  assertEquals "0.7.1" "$("$WORKDIR/version-test")"
 }
 
 . shunit2
diff -Nru capnproto-0.7.0/m4/libtool.m4 capnproto-0.7.1/m4/libtool.m4
--- capnproto-0.7.0/m4/libtool.m4	2018-08-28 18:13:55.000000000 -0700
+++ capnproto-0.7.1/m4/libtool.m4	2022-11-29 07:55:15.000000000 -0800
@@ -1041,8 +1041,8 @@
 _LT_EOF
       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
       echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
       cat > conftest.c << _LT_EOF
@@ -1071,11 +1071,11 @@
       # to the OS version, if on x86, and 10.4, the deployment
       # target defaults to 10.4. Don't you love it?
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	10.0,*86*-darwin8*|10.0,*-darwin[[912]]*)
 	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
 	10.[[012]][[,.]]*)
 	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
-	10.*)
+	10.*|11.*)
 	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
       esac
     ;;
@@ -1492,7 +1492,7 @@
 m4_defun([_LT_PROG_AR],
 [AC_CHECK_TOOLS(AR, [ar], false)
 : ${AR=ar}
-: ${AR_FLAGS=cru}
+: ${AR_FLAGS=cr}
 _LT_DECL([], [AR], [1], [The archiver])
 _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
 
@@ -4063,7 +4063,8 @@
   if AC_TRY_EVAL(ac_compile); then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+    $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
+    if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
 	mv -f "$nlist"T "$nlist"
@@ -4703,6 +4704,12 @@
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
         ;;
+      # flang / f18. f95 an alias for gfortran or flang on Debian
+      flang* | f18* | f95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
       icc* | ifort*)
@@ -6438,7 +6445,7 @@
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 
     else
       GXX=no
@@ -6813,7 +6820,7 @@
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test yes = "$GXX"; then
@@ -6878,7 +6885,7 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
           *)
 	    if test yes = "$GXX"; then
@@ -7217,7 +7224,7 @@
 	      # Commands to make compiler produce verbose output that lists
 	      # what "hidden" libraries, object files and flags are used when
 	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 
 	    else
 	      # FIXME: insert proper C++ library support
@@ -7301,7 +7308,7 @@
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 	      else
 	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
 	        # platform.
@@ -7312,7 +7319,7 @@
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 	      fi
 
 	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
diff -Nru capnproto-0.7.0/Makefile.in capnproto-0.7.1/Makefile.in
--- capnproto-0.7.0/Makefile.in	2018-08-28 18:13:59.000000000 -0700
+++ capnproto-0.7.1/Makefile.in	2022-11-29 07:55:18.000000000 -0800
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.3 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -698,8 +698,8 @@
 	$(includekj_HEADERS) $(includekjcompat_HEADERS) \
 	$(includekjparse_HEADERS) $(includekjstd_HEADERS) \
 	$(noinst_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
-	$(LISP)config.h.in
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+	config.h.in
 # Read a list of newline-separated strings from the standard input,
 # and print each of them once, without duplicates.  Input order is
 # *not* preserved.
@@ -875,6 +875,7 @@
   bases='$(TEST_LOGS)'; \
   bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
   bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
 RECHECK_LOGS = $(TEST_LOGS)
 TEST_SUITE_LOG = test-suite.log
 TEST_EXTENSIONS = @EXEEXT@ .test
@@ -929,6 +930,8 @@
 DIST_ARCHIVES = $(distdir).tar.gz
 GZIP_ENV = --best
 DIST_TARGETS = dist-gzip
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -3563,7 +3566,7 @@
 	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
 	fi;								\
 	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}";	\
 	echo "$${col}$$br$${std}"; 					\
 	create_testsuite_report --maybe-color;				\
 	echo "$$col$$br$$std";						\
@@ -3691,6 +3694,10 @@
 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
 	$(am__post_remove_distdir)
 
+dist-zstd: distdir
+	tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+	$(am__post_remove_distdir)
+
 dist-tarZ: distdir
 	@echo WARNING: "Support for distribution archives compressed with" \
 		       "legacy program 'compress' is deprecated." >&2
@@ -3733,6 +3740,8 @@
 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
+	*.tar.zst*) \
+	  zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
 	esac
 	chmod -R a-w $(distdir)
 	chmod u+w $(distdir)
@@ -3749,7 +3758,7 @@
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 	    --srcdir=../.. --prefix="$$dc_install_base" \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
 	  && $(MAKE) $(AM_MAKEFLAGS) check \
 	  && $(MAKE) $(AM_MAKEFLAGS) install \
 	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
@@ -3815,7 +3824,8 @@
 	done
 install: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
+install-exec: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
 
@@ -4244,8 +4254,8 @@
 	uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
 	@$(NORMAL_INSTALL)
 	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-.MAKE: all check check-am install install-am install-exec-am \
-	install-strip uninstall-am
+.MAKE: all check check-am install install-am install-exec \
+	install-exec-am install-strip uninstall-am
 
 .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles am--refresh check \
 	check-TESTS check-am clean clean-binPROGRAMS \
@@ -4253,14 +4263,14 @@
 	clean-generic clean-libLTLIBRARIES clean-libtool cscope \
 	cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
 	dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
-	distcheck distclean distclean-compile distclean-generic \
-	distclean-hdr distclean-libtool distclean-tags distcleancheck \
-	distdir distuninstallcheck dvi dvi-am html html-am info \
-	info-am install install-am install-binPROGRAMS \
-	install-cmakeconfigDATA install-data install-data-am \
-	install-dist_includecapnpDATA install-dvi install-dvi-am \
-	install-exec install-exec-am install-exec-hook install-html \
-	install-html-am install-includecapnpHEADERS \
+	dist-zstd distcheck distclean distclean-compile \
+	distclean-generic distclean-hdr distclean-libtool \
+	distclean-tags distcleancheck distdir distuninstallcheck dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-binPROGRAMS install-cmakeconfigDATA install-data \
+	install-data-am install-dist_includecapnpDATA install-dvi \
+	install-dvi-am install-exec install-exec-am install-exec-hook \
+	install-html install-html-am install-includecapnpHEADERS \
 	install-includecapnpcompatHEADERS install-includekjHEADERS \
 	install-includekjcompatHEADERS install-includekjparseHEADERS \
 	install-includekjstdHEADERS install-info install-info-am \
diff -Nru capnproto-0.7.0/src/capnp/c++.capnp.h capnproto-0.7.1/src/capnp/c++.capnp.h
--- capnproto-0.7.0/src/capnp/c++.capnp.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/c++.capnp.h	2022-11-29 07:55:12.000000000 -0800
@@ -6,7 +6,7 @@
 #include <capnp/generated-header-support.h>
 #include <kj/windows-sanity.h>
 
-#if CAPNP_VERSION != 7000
+#if CAPNP_VERSION != 7001
 #error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
 #endif
 
diff -Nru capnproto-0.7.0/src/capnp/common.h capnproto-0.7.1/src/capnp/common.h
--- capnproto-0.7.0/src/capnp/common.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/common.h	2022-11-29 07:55:12.000000000 -0800
@@ -42,7 +42,7 @@
 
 #define CAPNP_VERSION_MAJOR 0
 #define CAPNP_VERSION_MINOR 7
-#define CAPNP_VERSION_MICRO 0
+#define CAPNP_VERSION_MICRO 1
 
 #define CAPNP_VERSION \
   (CAPNP_VERSION_MAJOR * 1000000 + CAPNP_VERSION_MINOR * 1000 + CAPNP_VERSION_MICRO)
diff -Nru capnproto-0.7.0/src/capnp/compat/json.capnp.h capnproto-0.7.1/src/capnp/compat/json.capnp.h
--- capnproto-0.7.0/src/capnp/compat/json.capnp.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/compat/json.capnp.h	2022-11-29 07:55:12.000000000 -0800
@@ -9,7 +9,7 @@
 #include <capnp/capability.h>
 #endif  // !CAPNP_LITE
 
-#if CAPNP_VERSION != 7000
+#if CAPNP_VERSION != 7001
 #error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
 #endif
 
diff -Nru capnproto-0.7.0/src/capnp/compiler/grammar.capnp.h capnproto-0.7.1/src/capnp/compiler/grammar.capnp.h
--- capnproto-0.7.0/src/capnp/compiler/grammar.capnp.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/compiler/grammar.capnp.h	2022-11-29 07:55:12.000000000 -0800
@@ -6,7 +6,7 @@
 #include <capnp/generated-header-support.h>
 #include <kj/windows-sanity.h>
 
-#if CAPNP_VERSION != 7000
+#if CAPNP_VERSION != 7001
 #error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
 #endif
 
diff -Nru capnproto-0.7.0/src/capnp/compiler/lexer.capnp.h capnproto-0.7.1/src/capnp/compiler/lexer.capnp.h
--- capnproto-0.7.0/src/capnp/compiler/lexer.capnp.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/compiler/lexer.capnp.h	2022-11-29 07:55:12.000000000 -0800
@@ -6,7 +6,7 @@
 #include <capnp/generated-header-support.h>
 #include <kj/windows-sanity.h>
 
-#if CAPNP_VERSION != 7000
+#if CAPNP_VERSION != 7001
 #error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
 #endif
 
diff -Nru capnproto-0.7.0/src/capnp/layout.c++ capnproto-0.7.1/src/capnp/layout.c++
--- capnproto-0.7.0/src/capnp/layout.c++	2018-08-25 18:41:52.000000000 -0700
+++ capnproto-0.7.1/src/capnp/layout.c++	2022-11-29 07:45:48.000000000 -0800
@@ -2322,10 +2322,6 @@
             break;
 
           case ElementSize::POINTER:
-            // We expected a list of pointers but got a list of structs.  Assuming the first field
-            // in the struct is the pointer we were looking for, we want to munge the pointer to
-            // point at the first element's pointer section.
-            ptr += tag->structRef.dataSize.get();
             KJ_REQUIRE(tag->structRef.ptrCount.get() > ZERO * POINTERS,
                        "Expected a pointer list, but got a list of data-only structs.") {
               goto useDefault;
diff -Nru capnproto-0.7.0/src/capnp/layout.h capnproto-0.7.1/src/capnp/layout.h
--- capnproto-0.7.0/src/capnp/layout.h	2018-08-25 18:41:52.000000000 -0700
+++ capnproto-0.7.1/src/capnp/layout.h	2022-11-29 07:45:48.000000000 -0800
@@ -1235,8 +1235,12 @@
 }
 
 inline PointerReader ListReader::getPointerElement(ElementCount index) const {
+  // If the list elements have data sections we need to skip those. Note that for pointers to be
+  // present at all (which already must be true if we get here), then `structDataSize` must be a
+  // whole number of words, so we don't have to worry about unaligned reads here.
+  auto offset = structDataSize / BITS_PER_BYTE;
   return PointerReader(segment, capTable, reinterpret_cast<const WirePointer*>(
-      ptr + upgradeBound<uint64_t>(index) * step / BITS_PER_BYTE), nestingLimit);
+      ptr + offset + upgradeBound<uint64_t>(index) * step / BITS_PER_BYTE), nestingLimit);
 }
 
 // -------------------------------------------------------------------
diff -Nru capnproto-0.7.0/src/capnp/persistent.capnp.h capnproto-0.7.1/src/capnp/persistent.capnp.h
--- capnproto-0.7.0/src/capnp/persistent.capnp.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/persistent.capnp.h	2022-11-29 07:55:12.000000000 -0800
@@ -9,7 +9,7 @@
 #include <capnp/capability.h>
 #endif  // !CAPNP_LITE
 
-#if CAPNP_VERSION != 7000
+#if CAPNP_VERSION != 7001
 #error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
 #endif
 
diff -Nru capnproto-0.7.0/src/capnp/rpc.capnp.h capnproto-0.7.1/src/capnp/rpc.capnp.h
--- capnproto-0.7.0/src/capnp/rpc.capnp.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/rpc.capnp.h	2022-11-29 07:55:12.000000000 -0800
@@ -6,7 +6,7 @@
 #include <capnp/generated-header-support.h>
 #include <kj/windows-sanity.h>
 
-#if CAPNP_VERSION != 7000
+#if CAPNP_VERSION != 7001
 #error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
 #endif
 
diff -Nru capnproto-0.7.0/src/capnp/rpc-twoparty.capnp.h capnproto-0.7.1/src/capnp/rpc-twoparty.capnp.h
--- capnproto-0.7.0/src/capnp/rpc-twoparty.capnp.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/rpc-twoparty.capnp.h	2022-11-29 07:55:12.000000000 -0800
@@ -6,7 +6,7 @@
 #include <capnp/generated-header-support.h>
 #include <kj/windows-sanity.h>
 
-#if CAPNP_VERSION != 7000
+#if CAPNP_VERSION != 7001
 #error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
 #endif
 
diff -Nru capnproto-0.7.0/src/capnp/schema.capnp.h capnproto-0.7.1/src/capnp/schema.capnp.h
--- capnproto-0.7.0/src/capnp/schema.capnp.h	2018-08-28 18:13:50.000000000 -0700
+++ capnproto-0.7.1/src/capnp/schema.capnp.h	2022-11-29 07:55:12.000000000 -0800
@@ -6,7 +6,7 @@
 #include <capnp/generated-header-support.h>
 #include <kj/windows-sanity.h>
 
-#if CAPNP_VERSION != 7000
+#if CAPNP_VERSION != 7001
 #error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
 #endif
[The following lists of changes regard files as different if they have
different names, permissions or owners.]

Files in second .changes but not in first
-----------------------------------------
-rw-r--r--  root/root   /usr/lib/debug/.build-id/1d/98a013de34e8c5d4c5f1733e9ce3a66c3e5643.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/28/f3f863b38701712563bd58462201b87d691762.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/3a/549ae4eed21a411424039f519879853e54c5d4.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/82/1c236ff944564f1af8a14b15868f557594a538.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/91/9fd5091fc05990b3dac27c1e453caec69042a0.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/9a/00a82842f69a9a0e4a31d5da9279e21f2b4f1d.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/9a/597e3dcfb1ba06b528321f85830c579545b828.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/9d/b5d452d41dac8936a4f08dff0af210ea8d791d.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/b9/bfff1df7d26a50d67751dc20fbb2dd5431abf9.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/d8/8a4012e5bcfb07616306cedebf58c327693b32.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/d9/3cc15b29f124ad5a12b3a5f0f86fd360760440.debug
-rw-r--r--  root/root   /usr/lib/debug/.dwz/x86_64-linux-gnu/libcapnp-0.7.1.debug
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-0.7.1.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-json-0.7.1.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-rpc-0.7.1.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libcapnpc-0.7.1.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libkj-0.7.1.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libkj-async-0.7.1.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libkj-http-0.7.1.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libkj-test-0.7.1.so
-rw-r--r--  root/root   /usr/share/doc/libcapnp-0.7.1/README.txt
-rw-r--r--  root/root   /usr/share/doc/libcapnp-0.7.1/changelog.Debian.gz
-rw-r--r--  root/root   /usr/share/doc/libcapnp-0.7.1/copyright
-rw-r--r--  root/root   /usr/share/lintian/overrides/libcapnp-0.7.1
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-json.so -> libcapnp-json-0.7.1.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-rpc.so -> libcapnp-rpc-0.7.1.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libcapnp.so -> libcapnp-0.7.1.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libcapnpc.so -> libcapnpc-0.7.1.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libkj-async.so -> libkj-async-0.7.1.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libkj-http.so -> libkj-http-0.7.1.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libkj-test.so -> libkj-test-0.7.1.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libkj.so -> libkj-0.7.1.so
lrwxrwxrwx  root/root   /usr/share/doc/libcapnp-0.7.1-dbgsym -> libcapnp-0.7.1

Files in first .changes but not in second
-----------------------------------------
-rw-r--r--  root/root   /usr/lib/debug/.build-id/2c/84a525c0b1441154cbcf8c5c4e066c59979632.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/2d/bc05aa26779ee5210bf679aac5164e3b4ac58f.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/40/a2834686f26fea3fe4be5fabd660d32da66d3b.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/6d/6e80b431c268234284a69f019d033a496c784f.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/6e/272d75b81e03bff0ea2c1011dd07979994e9fa.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/7d/0dcdf253d2ffc1e6b720ce539ae8cbb878f0af.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/92/2eb2ebbd41bd3be4473b5a8a8595057e80b637.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/ae/d5e66907addeff9b8a4c6577f273140193baf3.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/b6/a57fb847318d21db2ea77c898db0d1ae2a7173.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/d4/2305b3fca4fd0d3bf685a7e849608dd59cefb1.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/eb/c9aa66ed1169b24f651f357499c1550a2a7de8.debug
-rw-r--r--  root/root   /usr/lib/debug/.dwz/x86_64-linux-gnu/libcapnp-0.7.0.debug
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-0.7.0.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-json-0.7.0.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-rpc-0.7.0.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libcapnpc-0.7.0.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libkj-0.7.0.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libkj-async-0.7.0.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libkj-http-0.7.0.so
-rw-r--r--  root/root   /usr/lib/x86_64-linux-gnu/libkj-test-0.7.0.so
-rw-r--r--  root/root   /usr/share/doc/libcapnp-0.7.0/README.txt
-rw-r--r--  root/root   /usr/share/doc/libcapnp-0.7.0/changelog.Debian.gz
-rw-r--r--  root/root   /usr/share/doc/libcapnp-0.7.0/copyright
-rw-r--r--  root/root   /usr/share/lintian/overrides/libcapnp-0.7.0
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-json.so -> libcapnp-json-0.7.0.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libcapnp-rpc.so -> libcapnp-rpc-0.7.0.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libcapnp.so -> libcapnp-0.7.0.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libcapnpc.so -> libcapnpc-0.7.0.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libkj-async.so -> libkj-async-0.7.0.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libkj-http.so -> libkj-http-0.7.0.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libkj-test.so -> libkj-test-0.7.0.so
lrwxrwxrwx  root/root   /usr/lib/x86_64-linux-gnu/libkj.so -> libkj-0.7.0.so
lrwxrwxrwx  root/root   /usr/share/doc/libcapnp-0.7.0-dbgsym -> libcapnp-0.7.0

Control files of package capnproto: lines which differ (wdiff format)
---------------------------------------------------------------------
Depends: libc6 (>= 2.14), [-libcapnp-0.7.0-] {+libcapnp-0.7.1+} (= [-0.7.0-7),-] {+0.7.1-1+deb11u1),+} libgcc-s1 (>= 3.0), libstdc++6 (>= 5)
Version: [-0.7.0-7-] {+0.7.1-1+deb11u1+}

Control files of package capnproto-dbgsym: lines which differ (wdiff format)
----------------------------------------------------------------------------
Build-Ids: [-40a2834686f26fea3fe4be5fabd660d32da66d3b 922eb2ebbd41bd3be4473b5a8a8595057e80b637 aed5e66907addeff9b8a4c6577f273140193baf3-] {+3a549ae4eed21a411424039f519879853e54c5d4 d88a4012e5bcfb07616306cedebf58c327693b32 d93cc15b29f124ad5a12b3a5f0f86fd360760440+}
Depends: capnproto (= [-0.7.0-7)-] {+0.7.1-1+deb11u1)+}
Version: [-0.7.0-7-] {+0.7.1-1+deb11u1+}

Control files of package libcapnp-dev: lines which differ (wdiff format)
------------------------------------------------------------------------
Depends: [-libcapnp-0.7.0-] {+libcapnp-0.7.1+} (= [-0.7.0-7)-] {+0.7.1-1+deb11u1)+}
Installed-Size: [-11018-] {+11019+}
Version: [-0.7.0-7-] {+0.7.1-1+deb11u1+}
diff -Nru capnproto-0.7.0/debian/changelog capnproto-0.7.1/debian/changelog
--- capnproto-0.7.0/debian/changelog	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/changelog	2022-12-04 16:40:06.000000000 -0800
@@ -1,3 +1,10 @@
+capnproto (0.7.1-1+deb11u1) bullseye; urgency=medium
+
+  * New upstream version 0.7.1
+    Addresses CVE-2022-46149
+
+ -- tony mancill <tmancill@debian.org>  Sun, 04 Dec 2022 16:40:06 -0800
+
 capnproto (0.7.0-7) unstable; urgency=medium
 
   * Disable failing test when interface is IPv6-only (Closes: #963855)
diff -Nru capnproto-0.7.0/debian/control capnproto-0.7.1/debian/control
--- capnproto-0.7.0/debian/control	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/control	2022-12-04 16:40:06.000000000 -0800
@@ -11,7 +11,7 @@
 Vcs-Browser: https://github.com/thomaslee/capnproto-debian
 Rules-Requires-Root: no
 
-Package: libcapnp-0.7.0
+Package: libcapnp-0.7.1
 Architecture: any
 Multi-Arch: same
 Section: libs
@@ -33,7 +33,7 @@
 Architecture: any
 Multi-Arch: same
 Section: libdevel
-Depends: ${misc:Depends}, libcapnp-0.7.0 (= ${binary:Version})
+Depends: ${misc:Depends}, libcapnp-0.7.1 (= ${binary:Version})
 Description: Cap'n Proto C++ library (development files)
  Similar to Protocol Buffers, Cap'n Proto is an efficient means of
  serializing structured data to be transferred across a network or
@@ -52,7 +52,7 @@
 Architecture: any
 Multi-Arch: foreign
 Depends: ${shlibs:Depends}, ${misc:Depends},
- libcapnp-0.7.0 (= ${binary:Version})
+ libcapnp-0.7.1 (= ${binary:Version})
 Description: tool for working with the Cap'n Proto data interchange format
  Similar to Protocol Buffers, Cap'n Proto is an efficient means of
  serializing structured data to be transferred across a network or
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.0.install capnproto-0.7.1/debian/libcapnp-0.7.0.install
--- capnproto-0.7.0/debian/libcapnp-0.7.0.install	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/libcapnp-0.7.0.install	1969-12-31 16:00:00.000000000 -0800
@@ -1,8 +0,0 @@
-usr/lib/*/libcapnp-0.7.0.so
-usr/lib/*/libcapnp-json-0.7.0.so
-usr/lib/*/libcapnp-rpc-0.7.0.so
-usr/lib/*/libcapnpc-*.so
-usr/lib/*/libkj-0.7.0.so
-usr/lib/*/libkj-async-0.7.0.so
-usr/lib/*/libkj-http-0.7.0.so
-usr/lib/*/libkj-test-0.7.0.so
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.0.lintian-overrides capnproto-0.7.1/debian/libcapnp-0.7.0.lintian-overrides
--- capnproto-0.7.0/debian/libcapnp-0.7.0.lintian-overrides	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/libcapnp-0.7.0.lintian-overrides	1969-12-31 16:00:00.000000000 -0800
@@ -1,3 +0,0 @@
-libcapnp-0.7.0 binary: no-symbols-control-file usr/lib/*
-libcapnp-0.7.0 binary: spelling-error-in-binary usr/lib/*/libcapnp-rpc-*.so capTable *
-
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.0.shlibs capnproto-0.7.1/debian/libcapnp-0.7.0.shlibs
--- capnproto-0.7.0/debian/libcapnp-0.7.0.shlibs	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/libcapnp-0.7.0.shlibs	1969-12-31 16:00:00.000000000 -0800
@@ -1,8 +0,0 @@
-libcapnp 0.7.0 libcapnp-0.7.0
-libcapnp-json 0.7.0 libcapnp-0.7.0
-libcapnp-rpc 0.7.0 libcapnp-0.7.0
-libcapnpc 0.7.0 libcapnp-0.7.0
-libkj 0.7.0 libcapnp-0.7.0
-libkj-async 0.7.0 libcapnp-0.7.0
-libkj-http 0.7.0 libcapnp-0.7.0
-libkj-test 0.7.0 libcapnp-0.7.0
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.1.install capnproto-0.7.1/debian/libcapnp-0.7.1.install
--- capnproto-0.7.0/debian/libcapnp-0.7.1.install	1969-12-31 16:00:00.000000000 -0800
+++ capnproto-0.7.1/debian/libcapnp-0.7.1.install	2022-12-04 16:40:06.000000000 -0800
@@ -0,0 +1,8 @@
+usr/lib/*/libcapnp-0.7.1.so
+usr/lib/*/libcapnp-json-0.7.1.so
+usr/lib/*/libcapnp-rpc-0.7.1.so
+usr/lib/*/libcapnpc-*.so
+usr/lib/*/libkj-0.7.1.so
+usr/lib/*/libkj-async-0.7.1.so
+usr/lib/*/libkj-http-0.7.1.so
+usr/lib/*/libkj-test-0.7.1.so
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.1.lintian-overrides capnproto-0.7.1/debian/libcapnp-0.7.1.lintian-overrides
--- capnproto-0.7.0/debian/libcapnp-0.7.1.lintian-overrides	1969-12-31 16:00:00.000000000 -0800
+++ capnproto-0.7.1/debian/libcapnp-0.7.1.lintian-overrides	2022-12-04 16:40:06.000000000 -0800
@@ -0,0 +1,3 @@
+libcapnp-0.7.1 binary: no-symbols-control-file usr/lib/*
+libcapnp-0.7.1 binary: spelling-error-in-binary usr/lib/*/libcapnp-rpc-*.so capTable *
+
diff -Nru capnproto-0.7.0/debian/libcapnp-0.7.1.shlibs capnproto-0.7.1/debian/libcapnp-0.7.1.shlibs
--- capnproto-0.7.0/debian/libcapnp-0.7.1.shlibs	1969-12-31 16:00:00.000000000 -0800
+++ capnproto-0.7.1/debian/libcapnp-0.7.1.shlibs	2022-12-04 16:40:06.000000000 -0800
@@ -0,0 +1,8 @@
+libcapnp 0.7.1 libcapnp-0.7.1
+libcapnp-json 0.7.1 libcapnp-0.7.1
+libcapnp-rpc 0.7.1 libcapnp-0.7.1
+libcapnpc 0.7.1 libcapnp-0.7.1
+libkj 0.7.1 libcapnp-0.7.1
+libkj-async 0.7.1 libcapnp-0.7.1
+libkj-http 0.7.1 libcapnp-0.7.1
+libkj-test 0.7.1 libcapnp-0.7.1
diff -Nru capnproto-0.7.0/debian/tests/build-tests capnproto-0.7.1/debian/tests/build-tests
--- capnproto-0.7.0/debian/tests/build-tests	2020-07-06 11:52:29.000000000 -0700
+++ capnproto-0.7.1/debian/tests/build-tests	2022-12-04 16:40:06.000000000 -0800
@@ -91,7 +91,7 @@
   if [[ "$?" != 0 ]]; then
     fail "compile failed"
   fi
-  assertEquals "0.7.0" "$("$WORKDIR/version-test")"
+  assertEquals "0.7.1" "$("$WORKDIR/version-test")"
 }
 
 . shunit2
diff -Nru capnproto-0.7.0/src/capnp/layout.c++ capnproto-0.7.1/src/capnp/layout.c++
--- capnproto-0.7.0/src/capnp/layout.c++	2018-08-25 18:41:52.000000000 -0700
+++ capnproto-0.7.1/src/capnp/layout.c++	2022-11-29 07:45:48.000000000 -0800
@@ -2322,10 +2322,6 @@
             break;
 
           case ElementSize::POINTER:
-            // We expected a list of pointers but got a list of structs.  Assuming the first field
-            // in the struct is the pointer we were looking for, we want to munge the pointer to
-            // point at the first element's pointer section.
-            ptr += tag->structRef.dataSize.get();
             KJ_REQUIRE(tag->structRef.ptrCount.get() > ZERO * POINTERS,
                        "Expected a pointer list, but got a list of data-only structs.") {
               goto useDefault;
diff -Nru capnproto-0.7.0/src/capnp/layout.h capnproto-0.7.1/src/capnp/layout.h
--- capnproto-0.7.0/src/capnp/layout.h	2018-08-25 18:41:52.000000000 -0700
+++ capnproto-0.7.1/src/capnp/layout.h	2022-11-29 07:45:48.000000000 -0800
@@ -1235,8 +1235,12 @@
 }
 
 inline PointerReader ListReader::getPointerElement(ElementCount index) const {
+  // If the list elements have data sections we need to skip those. Note that for pointers to be
+  // present at all (which already must be true if we get here), then `structDataSize` must be a
+  // whole number of words, so we don't have to worry about unaligned reads here.
+  auto offset = structDataSize / BITS_PER_BYTE;
   return PointerReader(segment, capTable, reinterpret_cast<const WirePointer*>(
-      ptr + upgradeBound<uint64_t>(index) * step / BITS_PER_BYTE), nestingLimit);
+      ptr + offset + upgradeBound<uint64_t>(index) * step / BITS_PER_BYTE), nestingLimit);
 }
 
 // -------------------------------------------------------------------

Reply to: