diff -Nru pam-u2f-1.0.7/aclocal.m4 pam-u2f-1.0.8/aclocal.m4 --- pam-u2f-1.0.7/aclocal.m4 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/aclocal.m4 2019-06-04 10:49:06.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -296,7 +296,7 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -308,10 +308,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[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.15.1], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -327,12 +327,12 @@ # 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.15.1])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -# Copyright (C) 2011-2017 Free Software Foundation, Inc. +# Copyright (C) 2011-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -394,7 +394,7 @@ # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -446,7 +446,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -477,7 +477,7 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -668,13 +668,12 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -682,49 +681,41 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? 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 + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -733,18 +724,17 @@ # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -831,8 +821,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -899,7 +889,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -941,7 +931,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -962,7 +952,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -984,7 +974,7 @@ # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1019,7 +1009,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1027,49 +1017,42 @@ # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1108,7 +1091,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1137,7 +1120,7 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1184,7 +1167,7 @@ # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1203,7 +1186,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1284,7 +1267,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1344,7 +1327,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1372,7 +1355,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1391,7 +1374,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru pam-u2f-1.0.7/build-aux/ar-lib pam-u2f-1.0.8/build-aux/ar-lib --- pam-u2f-1.0.7/build-aux/ar-lib 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/build-aux/ar-lib 2019-06-04 10:49:07.000000000 +0000 @@ -4,7 +4,7 @@ me=ar-lib scriptversion=2012-03-01.08; # UTC -# Copyright (C) 2010-2017 Free Software Foundation, Inc. +# Copyright (C) 2010-2018 Free Software Foundation, Inc. # Written by Peter Rosin . # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a diff -Nru pam-u2f-1.0.7/build-aux/compile pam-u2f-1.0.8/build-aux/compile --- pam-u2f-1.0.7/build-aux/compile 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/build-aux/compile 2019-06-04 10:49:07.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru pam-u2f-1.0.7/build-aux/depcomp pam-u2f-1.0.8/build-aux/depcomp --- pam-u2f-1.0.7/build-aux/depcomp 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/build-aux/depcomp 2019-06-04 10:49:07.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2016-01-11.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 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 @@ -16,7 +16,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,7 +783,7 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" diff -Nru pam-u2f-1.0.7/build-aux/install-sh pam-u2f-1.0.8/build-aux/install-sh --- pam-u2f-1.0.7/build-aux/install-sh 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/build-aux/install-sh 2019-06-04 10:49:07.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2014-09-12.12; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,14 +332,16 @@ # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) - # $RANDOM is not portable (e.g. dash); use it when possible to - # lower collision chance + # 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 - # As "mkdir -p" follows symlinks and we work in /tmp possibly; so - # create the $tmpdir first (and fail if unsuccessful) to make sure - # that nobody tries to guess the $tmpdir name. + # 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 @@ -434,8 +444,8 @@ else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 @@ -500,9 +510,9 @@ done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru pam-u2f-1.0.7/build-aux/ltmain.sh pam-u2f-1.0.8/build-aux/ltmain.sh --- pam-u2f-1.0.7/build-aux/ltmain.sh 2018-05-15 08:53:17.000000000 +0000 +++ pam-u2f-1.0.8/build-aux/ltmain.sh 2019-06-04 10:49:04.000000000 +0000 @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-2" +VERSION="2.4.6 Debian-2.4.6-10" package_revision=2.4.6 @@ -1370,7 +1370,7 @@ #! /bin/sh # Set a version string for this script. -scriptversion=2014-01-07.03; # UTC +scriptversion=2015-10-07.11; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 @@ -1530,6 +1530,8 @@ { $debug_cmd + _G_rc_run_hooks=false + case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; @@ -1538,16 +1540,16 @@ eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - eval $_G_hook '"$@"' - - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift + if eval $_G_hook '"$@"'; then + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + _G_rc_run_hooks=: + fi done - func_quote_for_eval ${1+"$@"} - func_run_hooks_result=$func_quote_for_eval_result + $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result } @@ -1557,10 +1559,16 @@ ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, remove any -# options that you action, and then pass back the remaining unprocessed +# full positional parameter list in your hook function, you may remove/edit +# any options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for -# 'eval'. Like this: +# 'eval'. In this case you also must return $EXIT_SUCCESS to let the +# hook's caller know that it should pay attention to +# '_result'. Returning $EXIT_FAILURE signalizes that +# arguments are left untouched by the hook and therefore caller will ignore the +# result variable. +# +# Like this: # # my_options_prep () # { @@ -1570,9 +1578,11 @@ # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# -# func_quote_for_eval ${1+"$@"} -# my_options_prep_result=$func_quote_for_eval_result +# # No change in '$@' (ignored completely by this hook). There is +# # no need to do the equivalent (but slower) action: +# # func_quote_for_eval ${1+"$@"} +# # my_options_prep_result=$func_quote_for_eval_result +# false # } # func_add_hook func_options_prep my_options_prep # @@ -1581,25 +1591,37 @@ # { # $debug_cmd # +# args_changed=false +# # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in -# --silent|-s) opt_silent=: ;; +# --silent|-s) opt_silent=: +# args_changed=: +# ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift +# args_changed=: # ;; -# *) set dummy "$_G_opt" "$*"; shift; break ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@", we could need that later +# # if $args_changed is true. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# if $args_changed; then +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# fi +# +# $args_changed # } # func_add_hook func_parse_options my_silent_option # @@ -1611,16 +1633,32 @@ # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # -# func_quote_for_eval ${1+"$@"} -# my_option_validation_result=$func_quote_for_eval_result +# false # } # func_add_hook func_validate_options my_option_validation # -# You'll alse need to manually amend $usage_message to reflect the extra +# You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + _G_func_options_finish_exit=false + if func_run_hooks func_options ${1+"$@"}; then + func_options_finish_result=$func_run_hooks_result + _G_func_options_finish_exit=: + fi + + $_G_func_options_finish_exit +} + + # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the @@ -1630,17 +1668,28 @@ { $debug_cmd - func_options_prep ${1+"$@"} - eval func_parse_options \ - ${func_options_prep_result+"$func_options_prep_result"} - eval func_validate_options \ - ${func_parse_options_result+"$func_parse_options_result"} + _G_rc_options=false - eval func_run_hooks func_options \ - ${func_validate_options_result+"$func_validate_options_result"} + for my_func in options_prep parse_options validate_options options_finish + do + if eval func_$my_func '${1+"$@"}'; then + eval _G_res_var='$'"func_${my_func}_result" + eval set dummy "$_G_res_var" ; shift + _G_rc_options=: + fi + done - # save modified positional parameters for caller - func_options_result=$func_run_hooks_result + # Save modified positional parameters for caller. As a top-level + # options-parser function we always need to set the 'func_options_result' + # variable (regardless the $_G_rc_options value). + if $_G_rc_options; then + func_options_result=$_G_res_var + else + func_quote_for_eval ${1+"$@"} + func_options_result=$func_quote_for_eval_result + fi + + $_G_rc_options } @@ -1649,9 +1698,9 @@ # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and -# needs to propogate that back to rest of this script, then the complete +# needs to propagate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before -# returning. +# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). func_hookable func_options_prep func_options_prep () { @@ -1661,10 +1710,14 @@ opt_verbose=false opt_warning_types= - func_run_hooks func_options_prep ${1+"$@"} + _G_rc_options_prep=false + if func_run_hooks func_options_prep ${1+"$@"}; then + _G_rc_options_prep=: + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result + fi - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result + $_G_rc_options_prep } @@ -1678,18 +1731,20 @@ func_parse_options_result= + _G_rc_parse_options=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. - func_run_hooks func_parse_options ${1+"$@"} - - # Adjust func_parse_options positional parameters to match - eval set dummy "$func_run_hooks_result"; shift + if func_run_hooks func_parse_options ${1+"$@"}; then + eval set dummy "$func_run_hooks_result"; shift + _G_rc_parse_options=: + fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -1704,7 +1759,10 @@ ;; --warnings|--warning|-W) - test $# = 0 && func_missing_arg $_G_opt && break + if test $# = 0 && func_missing_arg $_G_opt; then + _G_rc_parse_options=: + break + fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above @@ -1757,15 +1815,25 @@ shift ;; - --) break ;; + --) _G_rc_parse_options=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; esac + + $_G_match_parse_options && _G_rc_parse_options=: done - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + + if $_G_rc_parse_options; then + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result + fi + + $_G_rc_parse_options } @@ -1778,16 +1846,21 @@ { $debug_cmd + _G_rc_validate_options=false + # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - func_run_hooks func_validate_options ${1+"$@"} + if func_run_hooks func_validate_options ${1+"$@"}; then + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result + _G_rc_validate_options=: + fi # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result + $_G_rc_validate_options } @@ -2068,7 +2141,7 @@ compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-2 + version: $progname $scriptversion Debian-2.4.6-10 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` @@ -2270,6 +2343,8 @@ nonopt= preserve_args= + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2293,11 +2368,18 @@ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; + *) + _G_rc_lt_options_prep=false + ;; esac - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result + fi + + $_G_rc_lt_options_prep } func_add_hook func_options_prep libtool_options_prep @@ -2309,9 +2391,12 @@ { $debug_cmd + _G_rc_lt_parse_options=false + # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do + _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -2386,15 +2471,22 @@ func_append preserve_args " $_G_opt" ;; - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result + fi - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + $_G_rc_lt_parse_options } func_add_hook func_parse_options libtool_parse_options @@ -7275,10 +7367,11 @@ # -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 -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=*) + -specs=*|-fsanitize=*|-fuse-ld=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" diff -Nru pam-u2f-1.0.7/build-aux/missing pam-u2f-1.0.8/build-aux/missing --- pam-u2f-1.0.7/build-aux/missing 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/build-aux/missing 2019-06-04 10:49:07.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru pam-u2f-1.0.7/build-aux/test-driver pam-u2f-1.0.8/build-aux/test-driver --- pam-u2f-1.0.7/build-aux/test-driver 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/build-aux/test-driver 2019-06-04 10:49:07.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # test-driver - basic testsuite driver script. -scriptversion=2013-07-13.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2018 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 @@ -16,7 +16,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -140,9 +140,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -Nru pam-u2f-1.0.7/ChangeLog pam-u2f-1.0.8/ChangeLog --- pam-u2f-1.0.7/ChangeLog 2018-05-15 08:54:03.000000000 +0000 +++ pam-u2f-1.0.8/ChangeLog 2019-06-04 11:05:52.000000000 +0000 @@ -1,3 +1,50 @@ +2019-06-04 Alessio Di Mauro + + * NEWS: Update NEWS file + +2019-06-04 Alessio Di Mauro + + * man/pam_u2f.8.txt: Update manual + +2019-06-04 Alessio Di Mauro + + * : Merge PR #116 + +2019-06-04 Gabriel Kihlman + + * Makefile.am, README, configure.ac, drop_privs.c, drop_privs.h, + pam-u2f.c: Drop privileges by default when opening user-related + files The module is typically executed as root and would sometimes open + files or follow symlinks that could be controlled from the outside. Drop privileges to the target user before opening any files. Fixes CVE-2019-12209. Thanks to Matthias Gerstner of the SUSE Security Team for reporting + the issue. + +2019-06-04 Gabriel Kihlman + + * pam-u2f.c, util.c, util.h: Do not leak file descriptor when doing + exec When opening a custom debug file, the descriptor would stay open + when calling exec and leak to the child process. Make sure all files are opened with close-on-exec. This fixes CVE-2019-12210. Thanks to Matthias Gerstner of the SUSE Security Team for reporting + the issue. + +2019-04-01 Alessio Di Mauro + + * : Merge pull request #115 from Yubico/malloc_debug Handle malloc failing when logging + +2018-07-23 Alessio Di Mauro + + * README: Add more explicit dependencies to README Closes #101 + +2018-05-17 Alessio Di Mauro + + * man/pam_u2f.8.txt: Fix typo in man page + +2018-05-17 Alessio Di Mauro + + * : Merge PR 95 + +2018-05-15 Alessio Di Mauro + + * NEWS, configure.ac: Bump version + 2018-05-15 Alessio Di Mauro * NEWS: Update NEWS file diff -Nru pam-u2f-1.0.7/configure pam-u2f-1.0.8/configure --- pam-u2f-1.0.7/configure 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/configure 2019-06-04 10:49:06.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for pam_u2f 1.0.7. +# Generated by GNU Autoconf 2.69 for pam_u2f 1.0.8. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='pam_u2f' PACKAGE_TARNAME='pam_u2f' -PACKAGE_VERSION='1.0.7' -PACKAGE_STRING='pam_u2f 1.0.7' +PACKAGE_VERSION='1.0.8' +PACKAGE_STRING='pam_u2f 1.0.8' PACKAGE_BUGREPORT='https://github.com/Yubico/pam-u2f/issues' PACKAGE_URL='https://developers.yubico.com/pam-u2f/' @@ -679,7 +679,6 @@ AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -765,7 +764,8 @@ PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -1352,7 +1352,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 pam_u2f 1.0.7 to adapt to many kinds of systems. +\`configure' configures pam_u2f 1.0.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1423,7 +1423,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pam_u2f 1.0.7:";; + short | recursive ) echo "Configuration of pam_u2f 1.0.8:";; esac cat <<\_ACEOF @@ -1554,7 +1554,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pam_u2f configure 1.0.7 +pam_u2f configure 1.0.8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1923,7 +1923,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by pam_u2f $as_me 1.0.7, which was +It was created by pam_u2f $as_me 1.0.8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2374,7 +2374,7 @@ -am__api_version='1.15' +am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2860,7 +2860,7 @@ # Define the identity of the package. PACKAGE='pam_u2f' - VERSION='1.0.7' + VERSION='1.0.8' cat >>confdefs.h <<_ACEOF @@ -2890,8 +2890,8 @@ # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -2942,7 +2942,7 @@ Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -3020,45 +3020,45 @@ ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -6985,11 +6985,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" @@ -9039,6 +9036,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*) @@ -12699,6 +12702,64 @@ fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pam_modutil_drop_priv" >&5 +$as_echo_n "checking for library containing pam_modutil_drop_priv... " >&6; } +if ${ac_cv_search_pam_modutil_drop_priv+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pam_modutil_drop_priv (); +int +main () +{ +return pam_modutil_drop_priv (); + ; + return 0; +} +_ACEOF +for ac_lib in '' "pam"; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_pam_modutil_drop_priv=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_pam_modutil_drop_priv+:} false; then : + break +fi +done +if ${ac_cv_search_pam_modutil_drop_priv+:} false; then : + +else + ac_cv_search_pam_modutil_drop_priv=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pam_modutil_drop_priv" >&5 +$as_echo "$ac_cv_search_pam_modutil_drop_priv" >&6; } +ac_res=$ac_cv_search_pam_modutil_drop_priv +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + $as_echo "#define HAVE_PAM_MODUTIL_DROP_PRIV 1" >>confdefs.h + +fi + + case "$host" in *darwin*) PAMDIR="/usr/lib/pam";; *linux*) PAMDIR="/lib/x86_64-linux-gnu/security";; @@ -13153,6 +13214,43 @@ : fi +# Because pam headers are doing sign-conversion, see PAM_MODUTIL_DEF_PRIVS in pam_modutil.h +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wconversion" >&5 +$as_echo_n "checking whether C compiler accepts -Wconversion... " >&6; } +if ${ax_cv_check_cflags___Wconversion+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Wconversion" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +char x[42U], fodder = 0;if (fodder > -1000 && fgets(x,1000,stdin)) puts(x) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_cflags___Wconversion=yes +else + ax_cv_check_cflags___Wconversion=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wconversion" >&5 +$as_echo "$ax_cv_check_cflags___Wconversion" >&6; } +if test "x$ax_cv_check_cflags___Wconversion" = xyes; then : + CWFLAGS="$CWFLAGS -Wno-sign-conversion" +else + : +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wpedantic" >&5 $as_echo_n "checking whether C compiler accepts -Wpedantic... " >&6; } if ${ax_cv_check_cflags___Wpedantic+:} false; then : @@ -14056,7 +14154,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by pam_u2f $as_me 1.0.7, which was +This file was extended by pam_u2f $as_me 1.0.8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14114,7 +14212,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -pam_u2f config.status 1.0.7 +pam_u2f config.status 1.0.8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -14222,7 +14320,7 @@ # # INIT-COMMANDS # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout @@ -14955,29 +15053,35 @@ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -14995,53 +15099,48 @@ q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)$/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $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 + '--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; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; "libtool":C) diff -Nru pam-u2f-1.0.7/configure.ac pam-u2f-1.0.8/configure.ac --- pam-u2f-1.0.7/configure.ac 2018-04-27 15:20:14.000000000 +0000 +++ pam-u2f-1.0.8/configure.ac 2019-06-04 09:28:00.000000000 +0000 @@ -1,6 +1,6 @@ # Copyright (C) 2014-2018 Yubico AB AC_PREREQ([2.65]) -AC_INIT([pam_u2f], [1.0.7], [https://github.com/Yubico/pam-u2f/issues], +AC_INIT([pam_u2f], [1.0.8], [https://github.com/Yubico/pam-u2f/issues], [pam_u2f], [https://developers.yubico.com/pam-u2f/]) AC_CONFIG_AUX_DIR([build-aux]) @@ -37,6 +37,8 @@ #include ]) AC_CHECK_LIB([pam], [pam_start]) +AC_SEARCH_LIBS([pam_modutil_drop_priv], ["pam"], [AC_DEFINE([HAVE_PAM_MODUTIL_DROP_PRIV], [1])]) + case "$host" in *darwin*) PAMDIR="/usr/lib/pam";; *linux*) PAMDIR="/lib/x86_64-linux-gnu/security";; @@ -71,6 +73,8 @@ AX_CHECK_COMPILE_FLAG([-Wall], [CWFLAGS="-Wall"]) AX_CHECK_COMPILE_FLAG([-Wextra], [CWFLAGS="$CWFLAGS -Wextra"]) AX_CHECK_COMPILE_FLAG([-Wconversion], [CWFLAGS="$CWFLAGS -Wconversion"]) +# Because pam headers are doing sign-conversion, see PAM_MODUTIL_DEF_PRIVS in pam_modutil.h +AX_CHECK_COMPILE_FLAG([-Wconversion], [CWFLAGS="$CWFLAGS -Wno-sign-conversion"]) AX_CHECK_COMPILE_FLAG([-Wpedantic], [CWFLAGS="$CWFLAGS -Wpedantic"]) AX_CHECK_COMPILE_FLAG([-Wformat=2], [CWFLAGS="$CWFLAGS -Wformat=2"]) AX_CHECK_COMPILE_FLAG([-Wstrict-prototypes], [CWFLAGS="$CWFLAGS -Wstrict-prototypes"]) diff -Nru pam-u2f-1.0.7/debian/changelog pam-u2f-1.0.8/debian/changelog --- pam-u2f-1.0.7/debian/changelog 2018-05-29 12:33:06.000000000 +0000 +++ pam-u2f-1.0.8/debian/changelog 2010-06-04 12:14:13.000000000 +0000 @@ -1,34 +1,25 @@ -pam-u2f (1.0.7-1) unstable; urgency=high +pam-u2f (1.0.8-1~ppa1~disco1) disco; urgency=medium + * New upstream release. - * New upstream version 1.0.7 (2018-05-15) - Closes: #898519 - * Update & complete debian/copyright - * Move the packaging repository to salsa.d.o - * Use the tracker.debian.org email address for the maintainers. - * Switch to debhelper 11 + -- Alessio Di Mauro Tue, 04 Jun 2010 13:14:13 +0100 - -- Nicolas Braud-Santoni Tue, 29 May 2018 14:33:06 +0200 +pam-u2f (1.0.7-1) unstable; urgency=medium -pam-u2f (1.0.6-1) unstable; urgency=medium + * New upstream release. - * New upstream version (2018-04-18) - - Remove upstreamed patch + -- Alessio Di Mauro Tue, 15 May 2018 10:12:45 +0100 - * Bump Standards-Version to 4.1.4 - - debian/copyright: Use HTTPS Format URI +pam-u2f (1.0.6-1) unstable; urgency=medium - * Update upstream's keyring - - Move it to debian/upstream - - Include a script debian/upstream/signing-key.sh that generates it + * New upstream release. - -- Nicolas Braud-Santoni Mon, 30 Apr 2018 13:35:48 +0200 + -- Alessio Di Mauro Wed, 18 Apr 2018 10:54:13 +0100 -pam-u2f (1.0.4-2) unstable; urgency=medium +pam-u2f (1.0.5-1) unstable; urgency=medium - * debian/control: Add myself as uploader - * debian/control: Move the packaging repo to Alioth + * New upstream release. - -- Nicolas Braud-Santoni Fri, 23 Sep 2016 20:38:06 +0200 + -- Alessio Di Mauro Mon, 16 Apr 2018 13:57:25 +0100 pam-u2f (1.0.4-1) unstable; urgency=medium diff -Nru pam-u2f-1.0.7/debian/compat pam-u2f-1.0.8/debian/compat --- pam-u2f-1.0.7/debian/compat 2018-05-29 12:33:06.000000000 +0000 +++ pam-u2f-1.0.8/debian/compat 2010-06-04 12:14:13.000000000 +0000 @@ -1 +1 @@ -11 +9 diff -Nru pam-u2f-1.0.7/debian/control pam-u2f-1.0.8/debian/control --- pam-u2f-1.0.7/debian/control 2018-05-29 12:33:06.000000000 +0000 +++ pam-u2f-1.0.8/debian/control 2010-06-04 12:14:13.000000000 +0000 @@ -1,21 +1,18 @@ Source: pam-u2f -Maintainer: Debian Authentication Maintainers -Uploaders: - Alessio Di Mauro , - Simon Josefsson , - Nicolas Braud-Santoni +Maintainer: Debian Authentication Maintainers +Uploaders: Alessio Di Mauro , Simon Josefsson Section: admin Priority: optional -Build-Depends: - debhelper (>= 11), +Build-Depends: debhelper (>= 9), + dh-autoreconf, pkg-config, libpam0g-dev, - libu2f-host-dev, - libu2f-server-dev -Standards-Version: 4.1.4 + libu2f-host-dev, + libu2f-server-dev +Standards-Version: 3.9.8 Homepage: https://developers.yubico.com/pam-u2f/ -Vcs-Browser: https://salsa.debian.org/auth-team/pam-u2f -Vcs-Git: https://salsa.debian.org/auth-team/pam-u2f.git +Vcs-Browser: https://github.com/Yubico/pam-u2f-dpkg +Vcs-Git: https://github.com/Yubico/pam-u2f-dpkg.git Package: libpam-u2f Architecture: any diff -Nru pam-u2f-1.0.7/debian/copyright pam-u2f-1.0.8/debian/copyright --- pam-u2f-1.0.7/debian/copyright 2018-05-29 12:33:06.000000000 +0000 +++ pam-u2f-1.0.8/debian/copyright 2010-06-04 12:14:13.000000000 +0000 @@ -1,74 +1,9 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: PAM U2F Source: https://developers.yubico.com/pam-u2f/ Files: * -Copyright: Copyright (c) 2006-2018 Yubico AB -License: BSD-2-clause - -Files: debian/* -Copyright: 2014-2016 Yubico AB - 2016-2018 Nicolas Braud-Santoni -License: BSD-2-clause - -Files: build-aux/* -Copyright: 1996-2017, Free Software Foundation, Inc. -License: GPL-2+ - -Files: aclocal.m4 -Copyright: 1996-2017, Free Software Foundation, Inc. - 2004 Scott James Remnant . - 2012-2015 Dan Nicholson -License: GPL-2+ - -Files: m4/* -Copyright: 2004, 2005, 2007-2009, 2011-2015, Free Software -License: FSFUL - This file is free software; the Free Software Foundation gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. - -Files: m4/ax_check_compile_flag.m4 -Copyright: 2011, Maarten Bosmans - 2008, Guido U. Draheim -License: GPL-3+ - -Files: m4/libtool.m4 -Copyright: 1996-2017, Free Software Foundation, Inc. -License: GPL-2+ with libtool exception - GNU Libtool is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - As a special exception to the GNU General Public License, - if you distribute this file as part of a program or library that - is built using GNU Libtool, you may include this file under the - same distribution terms that you use for the rest of that program. - . - On Debian systems, the full text of the GNU General Public - License version 2 can be found in the file - `/usr/share/common-licenses/GPL-2'. - - -License: GPL-2+ - 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 the Free Software - Foundation; either version 2 of the License, or (at your option) any later - version. - . - On Debian systems, the complete text of the GNU General Public License version 2 - can be found in /usr/share/common-licenses/GPL-2. - -License: GPL-3+ - This file is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - . - On Debian systems, the full text of the GNU General Public License version 3 - can be found in the file `/usr/share/common-licenses/GPL-3'. - +Copyright: Copyright (c) 2006-2014 Yubico AB License: BSD-2-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff -Nru pam-u2f-1.0.7/debian/gbp.conf pam-u2f-1.0.8/debian/gbp.conf --- pam-u2f-1.0.7/debian/gbp.conf 2018-05-29 12:33:06.000000000 +0000 +++ pam-u2f-1.0.8/debian/gbp.conf 2010-06-04 12:14:13.000000000 +0000 @@ -1,3 +1,3 @@ [DEFAULT] pristine-tar = True -#sign-tags = True +sign-tags = True diff -Nru pam-u2f-1.0.7/debian/rules pam-u2f-1.0.8/debian/rules --- pam-u2f-1.0.7/debian/rules 2018-05-29 12:33:06.000000000 +0000 +++ pam-u2f-1.0.8/debian/rules 2010-06-04 12:14:13.000000000 +0000 @@ -3,7 +3,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: - dh $@ --builddirectory=build + dh $@ --parallel --with autoreconf --builddirectory=build override_dh_auto_configure: dh_auto_configure -- \ diff -Nru pam-u2f-1.0.7/debian/upstream/signing-key.asc pam-u2f-1.0.8/debian/upstream/signing-key.asc --- pam-u2f-1.0.7/debian/upstream/signing-key.asc 2018-05-29 12:33:06.000000000 +0000 +++ pam-u2f-1.0.8/debian/upstream/signing-key.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,959 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -qRQdxwXfpG5wyAsU5YUqvGrpAnw/8jxBPF05wMvKQN/Qka3PDYF5DD/x34uuOux0 -X5MUKigswBOPC4uzCtPj+ji2ytJB3A7/U4wxcVz5ABGJFEeRhXKrWWSHI23lRugu -fkogjPBY+iabhN6o9TBDKtKw8tSz+mD4WHKimpSj/nhRSoKh8F8w+dhL27csvVKW -2jqRcDu5pdQ1+nJG0iGr4TGJ1YFHdHZCpVjbWbY8GHCAUn8smh4AmfMK5jD9LZ4t -F9pUjHQUoMh1vvMsv02r8fKr64idRlPA3nd49RpMjuf8L80nnkgR41GUTzVp6Kbb -XT517LAkc7PCg1Ws9GmBOv9En9ZqhjVqNmV28EPmLunXqJXmJSxF5M2Yxqzp57R7 -PYTWhSPFp55T7qOhqA6VvM8mn+bTTVojEcvZWvqlknb/KkbyQASGXsvUZOhsx5pC -mndNovaa2J/wPY2oau5Z4Z4ydb+5mDMwGzMv1dGT0NbNmjefproUwpSYFKrzztg6 -HHyLk6gOxdlOIioBruVdqQURABEBAAG0HUplYW4gUGF1bCBHYWxlYSA8anBAZ2Fs -ZWEuc2U+iQIOBBMBCgAkAhsDCAsJCAcNDAsKBRUKCQgLAh4BAheABQJaZf72BQkH -d6IoAAoJEP+NO0W3uHWpd8oOnREKdVqTQHmaIxzixUs6924giQWVqJpqYRaNm0HJ -0hb1gy6hJZwXsLV3XiBWeQEAHlagAdn1QKYMiS4VnP02pFKvKFGXWjIyoJrMfEt4 -uPQx0JvlFoUiZCcceofOt9Xq1hWuZ8Fg3GsFGGATN1Q3rnxBlb2rDekgztNHid4b -3UQVMv5EHItqh8bHhASQcRAAMYVVmht++ICGPuk7GCyL2Aa4kViMPFH7mEtY9QER -fYRGKhoBa9fBBmsN8CErmV2CGXu86nUC+JQZW3O5Mv38Z+HAihijAUCaqIfZ1NA3 -/CpGITkhF1DPw5yZNUUdYtPghQPbqapXLFvYORD1NwpjzMymTodZ6bFCu3Y+xGdb -36HsbeMyDmItu9qyp94x8YIzoNwUJK5koGxigrYHiV4r9n0BzC1YHOy9SQuPLUZW -6e/OplPfoR8RobMLt+YWvXBqQsx+QZwr/UDuJDqXHLiJcjRItYcwlpjYNF/VeCfs -uD72eOW+79awilv1tF8tEoVRIkVnnomUDu6ff46MJuOmVIqJv9IMe88Bc/m7v/Eu -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 -=FDLU ------END PGP PUBLIC KEY BLOCK----- diff -Nru pam-u2f-1.0.7/debian/upstream/signing-key.sh pam-u2f-1.0.8/debian/upstream/signing-key.sh --- pam-u2f-1.0.7/debian/upstream/signing-key.sh 2018-05-29 12:33:06.000000000 +0000 +++ pam-u2f-1.0.8/debian/upstream/signing-key.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -KEYS=( - 0A3B0262BCA1705307D5FF06BCA00FD4B2168C0A # Klas Lindfors - 20EE325B86A81BCBD3E56798F04367096FBA95E8 # Dain Nilsson - B70D62AA6A31AD6B9E4F9F4BDC8888925D25CA7A # Alessio Di Mauro - FF8AF719AE5828181B894D831CE39268A0973948 # Tommaso De Orchi - B6042E2BD1FDBC2BCA8588B2FF8D3B45B7B875A9 # Jean Paul Galea - 8D0B4EBA9345254BCEC0E843514F078FF4AB24C3 # Dag Heyman - 57A9DEED4C6D962A923BB691816F3ED99921835E # Emil Lundberg - 268583B64786F50F807456DA8CED3A80D41C0DCB # Trevor Bentley - EE90AE0D19774C8386628FAAB428949EF7914718 # Pedro Martelletto -) - -exec gpg --export --export-options export-minimal -a -o signing-key.asc --yes \ - "${KEYS[@]}" diff -Nru pam-u2f-1.0.7/debian/upstream-signing-key.pgp pam-u2f-1.0.8/debian/upstream-signing-key.pgp --- pam-u2f-1.0.7/debian/upstream-signing-key.pgp 1970-01-01 00:00:00.000000000 +0000 +++ pam-u2f-1.0.8/debian/upstream-signing-key.pgp 2010-06-04 12:14:13.000000000 +0000 @@ -0,0 +1,1430 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +=xNwa +-----END PGP PUBLIC KEY BLOCK----- diff -Nru pam-u2f-1.0.7/drop_privs.c pam-u2f-1.0.8/drop_privs.c --- pam-u2f-1.0.7/drop_privs.c 1970-01-01 00:00:00.000000000 +0000 +++ pam-u2f-1.0.8/drop_privs.c 2019-06-04 09:28:00.000000000 +0000 @@ -0,0 +1,129 @@ +/* Written by Ricky Zhou + * Fredrik Thulin implemented pam_modutil_drop_priv + * + * Copyright (c) 2011-2014 Yubico AB + * Copyright (c) 2011 Ricky Zhou + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef HAVE_PAM_MODUTIL_DROP_PRIV + +#include +#include +#include +#include +#include +#include + +#include "drop_privs.h" +#include "util.h" + +#ifdef HAVE_SECURITY_PAM_APPL_H +#include +#endif +#ifdef HAVE_SECURITY_PAM_MODULES_H +#include +#endif + + +int pam_modutil_drop_priv(pam_handle_t *pamh, struct _ykpam_privs *privs, struct passwd *pw) { + privs->saved_euid = geteuid(); + privs->saved_egid = getegid(); + + if ((privs->saved_euid == pw->pw_uid) && (privs->saved_egid == pw->pw_gid)) { + D (privs->debug_file, "Privilges already dropped, pretend it is all right"); + return 0; + } + + privs->saved_groups_length = getgroups(0, NULL); + if (privs->saved_groups_length < 0) { + D (privs->debug_file, "getgroups: %s", strerror(errno)); + return -1; + } + + if (privs->saved_groups_length > SAVED_GROUPS_MAX_LEN) { + D (privs->debug_file, "too many groups, limiting."); + privs->saved_groups_length = SAVED_GROUPS_MAX_LEN; + } + + if (privs->saved_groups_length > 0) { + if (getgroups(privs->saved_groups_length, privs->saved_groups) < 0) { + D (privs->debug_file, "getgroups: %s", strerror(errno)); + goto free_out; + } + } + + if (initgroups(pw->pw_name, pw->pw_gid) < 0) { + D (privs->debug_file, "initgroups: %s", strerror(errno)); + goto free_out; + } + + if (setegid(pw->pw_gid) < 0) { + D (privs->debug_file, "setegid: %s", strerror(errno)); + goto free_out; + } + + if (seteuid(pw->pw_uid) < 0) { + D (privs->debug_file, "seteuid: %s", strerror(errno)); + goto free_out; + } + + return 0; +free_out: + return -1; +} + +int pam_modutil_regain_priv(pam_handle_t *pamh, struct _ykpam_privs *privs) { + if ((privs->saved_euid == geteuid()) && (privs->saved_egid == getegid())) { + D (privs->debug_file, "Privilges already as requested, pretend it is all right"); + return 0; + } + + if (seteuid(privs->saved_euid) < 0) { + D (privs->debug_file, "seteuid: %s", strerror(errno)); + return -1; + } + + if (setegid(privs->saved_egid) < 0) { + D (privs->debug_file, "setegid: %s", strerror(errno)); + return -1; + } + + if (setgroups(privs->saved_groups_length, privs->saved_groups) < 0) { + D (privs->debug_file, "setgroups: %s", strerror(errno)); + return -1; + } + + return 0; +} + +#else + +// drop_privs.c:124: warning: ISO C forbids an empty translation unit [-Wpedantic] +typedef int make_iso_compilers_happy; + +#endif // HAVE_PAM_MODUTIL_DROP_PRIV diff -Nru pam-u2f-1.0.7/drop_privs.h pam-u2f-1.0.8/drop_privs.h --- pam-u2f-1.0.7/drop_privs.h 1970-01-01 00:00:00.000000000 +0000 +++ pam-u2f-1.0.8/drop_privs.h 2019-06-04 09:28:00.000000000 +0000 @@ -0,0 +1,64 @@ +/* Copyright (c) 2011-2014 Yubico AB + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __PAM_U2F_DROP_PRIVS_H_INCLUDED__ +#define __PAM_U2F_DROP_PRIVS_H_INCLUDED__ + +#ifdef HAVE_PAM_MODUTIL_DROP_PRIV +#include +#else + +#include +#include + +#ifdef HAVE_SECURITY_PAM_APPL_H +#include +#endif +#ifdef HAVE_SECURITY_PAM_MODULES_H +#include +#endif + +#define SAVED_GROUPS_MAX_LEN 64 /* as pam_modutil.. */ + +struct _ykpam_privs { + uid_t saved_euid; + gid_t saved_egid; + gid_t *saved_groups; + int saved_groups_length; + FILE *debug_file; +}; + +#define PAM_MODUTIL_DEF_PRIVS(n) \ + gid_t n##_saved_groups[SAVED_GROUPS_MAX_LEN]; \ + struct _ykpam_privs n = {-1, -1, n##_saved_groups, SAVED_GROUPS_MAX_LEN, cfg->debug_file} + +int pam_modutil_drop_priv(pam_handle_t *, struct _ykpam_privs *, struct passwd *); +int pam_modutil_regain_priv(pam_handle_t *, struct _ykpam_privs *); + +#endif +#endif diff -Nru pam-u2f-1.0.7/m4/libtool.m4 pam-u2f-1.0.8/m4/libtool.m4 --- pam-u2f-1.0.7/m4/libtool.m4 2018-05-15 08:53:17.000000000 +0000 +++ pam-u2f-1.0.8/m4/libtool.m4 2019-06-04 10:49:04.000000000 +0000 @@ -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 pam-u2f-1.0.7/Makefile.am pam-u2f-1.0.8/Makefile.am --- pam-u2f-1.0.7/Makefile.am 2018-04-27 15:20:14.000000000 +0000 +++ pam-u2f-1.0.8/Makefile.am 2019-06-04 09:28:00.000000000 +0000 @@ -13,6 +13,7 @@ pam_u2f_la_SOURCES = pam-u2f.c pam_u2f_la_SOURCES += util.c util.h +pam_u2f_la_SOURCES += drop_privs.h drop_privs.c pam_u2f_la_LIBADD = -lpam pam_u2f_la_LIBADD += $(LIBU2FHOST_LIBS) $(LIBU2FSERVER_LIBS) diff -Nru pam-u2f-1.0.7/Makefile.in pam-u2f-1.0.8/Makefile.in --- pam-u2f-1.0.7/Makefile.in 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/Makefile.in 2019-06-04 10:49:07.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -136,7 +136,7 @@ LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = pam_u2f_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am_pam_u2f_la_OBJECTS = pam-u2f.lo util.lo +am_pam_u2f_la_OBJECTS = pam-u2f.lo util.lo drop_privs.lo pam_u2f_la_OBJECTS = $(am_pam_u2f_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -159,7 +159,9 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/drop_privs.Plo \ + ./$(DEPDIR)/pam-u2f.Plo ./$(DEPDIR)/util.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -204,7 +206,7 @@ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -413,7 +415,7 @@ AM_CFLAGS = $(CWFLAGS) AM_CPPFLAGS = -I$(srcdir)/.. -I$(builddir)/.. $(LIBU2FHOST_CFLAGS) $(LIBU2FSERVER_CFLAGS) lib_LTLIBRARIES = pam_u2f.la -pam_u2f_la_SOURCES = pam-u2f.c util.c util.h +pam_u2f_la_SOURCES = pam-u2f.c util.c util.h drop_privs.h drop_privs.c pam_u2f_la_LIBADD = -lpam $(LIBU2FHOST_LIBS) $(LIBU2FSERVER_LIBS) pam_u2f_la_LDFLAGS = -module -avoid-version @ENABLE_MAN_TRUE@dist_man8_MANS = $(top_builddir)/man/pam_u2f.8 @@ -447,8 +449,8 @@ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -504,8 +506,15 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam-u2f.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drop_privs.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam-u2f.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -684,7 +693,10 @@ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -918,7 +930,9 @@ distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/drop_privs.Plo + -rm -f ./$(DEPDIR)/pam-u2f.Plo + -rm -f ./$(DEPDIR)/util.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags @@ -967,7 +981,9 @@ maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/drop_privs.Plo + -rm -f ./$(DEPDIR)/pam-u2f.Plo + -rm -f ./$(DEPDIR)/util.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -992,16 +1008,16 @@ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--refresh check check-am clean clean-cscope 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-libtool \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-exec-hook install-html \ - install-html-am install-info install-info-am \ + am--depfiles am--refresh check check-am clean clean-cscope \ + 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-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-exec-hook \ + install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-man8 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ diff -Nru pam-u2f-1.0.7/man/pam_u2f.8 pam-u2f-1.0.8/man/pam_u2f.8 --- pam-u2f-1.0.7/man/pam_u2f.8 2018-05-11 13:23:04.000000000 +0000 +++ pam-u2f-1.0.8/man/pam_u2f.8 2019-06-04 10:58:29.000000000 +0000 @@ -2,12 +2,12 @@ .\" Title: pam_u2f .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: Version 1.0.6 +.\" Date: Version 1.0.8 .\" Manual: PAM U2F Module Manual .\" Source: pam-u2f .\" Language: English .\" -.TH "PAM_U2F" "8" "Version 1\&.0\&.6" "pam\-u2f" "PAM U2F Module Manual" +.TH "PAM_U2F" "8" "Version 1\&.0\&.8" "pam\-u2f" "PAM U2F Module Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -64,7 +64,7 @@ .PP \fBauthpending_file\fR=\fIfile\fR .RS 4 -Set the location of the file that is used for touch request notifications\&. This file will be opened when pam\-u2f starts waiting for a user to touch the device, and will be closed when it no longer waits for a touch\&. Use inotify to listen on these events, or a more high\-level tool like yubikey\-touch\-detector\&. Default value: /var/run/user/$UID/pam\-u2f\-authpending\&. Set an empty value in order to disable this functionality, like so: lockfile= +Set the location of the file that is used for touch request notifications\&. This file will be opened when pam\-u2f starts waiting for a user to touch the device, and will be closed when it no longer waits for a touch\&. Use inotify to listen on these events, or a more high\-level tool like yubikey\-touch\-detector\&. Default value: /var/run/user/$UID/pam\-u2f\-authpending\&. Set an empty value in order to disable this functionality, like so: "authpending_file="\&. .RE .PP \fBnouserok\fR @@ -74,7 +74,7 @@ .PP \fBopenasuser\fR .RS 4 -Setuid to the authenticating user when opening the authfile\&. Useful when the user\(cqs home is stored on an NFS volume mounted with the root_squash option (which maps root to nobody which will not be able to read the file)\&. +Setuid to the authenticating user when opening the authfile\&. Useful when the user\(cqs home is stored on an NFS volume mounted with the root_squash option (which maps root to nobody which will not be able to read the file)\&. Note that after release 1\&.0\&.8 this is done by default when no global authfile or XDG_CONFIG_HOME environment variable has been set\&. .RE .PP \fBalwaysok\fR @@ -120,6 +120,8 @@ auth required pam_u2f\&.so origin=http://example\&.com appid=http://example\&.com authfile=/etc/yubikey_mappings .SH "CAVEATS" .sp +By default the mapping file inside a home directory will be opened as the target user, whereas the central file will be opened as root\&. If the XDG_CONFIG_HOME variable is set, privileges will not be dropped unless the openasuser configuration setting is set\&. +.sp Using pam\-u2f to secure the login to a computer while storing the mapping file in an encrypted home directory, will result in the impossibility of logging into the system\&. The partition is decrypted after login and the mapping file can not be accessed\&. .SH "NOTES" .sp diff -Nru pam-u2f-1.0.7/man/pam_u2f.8.txt pam-u2f-1.0.8/man/pam_u2f.8.txt --- pam-u2f-1.0.7/man/pam_u2f.8.txt 2018-05-02 10:31:58.000000000 +0000 +++ pam-u2f-1.0.8/man/pam_u2f.8.txt 2019-06-04 10:54:09.000000000 +0000 @@ -30,13 +30,14 @@ Set the location of the file that holds the mappings of user names to keyHandles and user keys. The format is username:keyHandle1,public_key1:keyHandle2,public_key2:... the default location of the file is $XDG_CONFIG_HOME/Yubico/u2f_keys. If the environment variable is not set, $HOME/.config/Yubico/u2f_keys is used. *authpending_file*=_file_:: -Set the location of the file that is used for touch request notifications. This file will be opened when pam-u2f starts waiting for a user to touch the device, and will be closed when it no longer waits for a touch. Use inotify to listen on these events, or a more high-level tool like yubikey-touch-detector. Default value: /var/run/user/$UID/pam-u2f-authpending. Set an empty value in order to disable this functionality, like so: lockfile= +Set the location of the file that is used for touch request notifications. This file will be opened when pam-u2f starts waiting for a user to touch the device, and will be closed when it no longer waits for a touch. Use inotify to listen on these events, or a more high-level tool like yubikey-touch-detector. Default value: /var/run/user/$UID/pam-u2f-authpending. Set an empty value in order to disable this functionality, like so: "authpending_file=". *nouserok*:: Set to enable authentication attempts to succeed even if the user trying to authenticate is not found inside authfile or if authfile is missing/malformed. *openasuser*:: Setuid to the authenticating user when opening the authfile. Useful when the user's home is stored on an NFS volume mounted with the root_squash option (which maps root to nobody which will not be able to read the file). +Note that after release 1.0.8 this is done by default when no global authfile or XDG_CONFIG_HOME environment variable has been set. *alwaysok*:: Set to enable all authentication attempts to succeed (aka presentation mode). @@ -68,6 +69,11 @@ auth required pam_u2f.so origin=http://example.com appid=http://example.com authfile=/etc/yubikey_mappings == CAVEATS +By default the mapping file inside a home directory will be opened as +the target user, whereas the central file will be opened as `root`. If +the `XDG_CONFIG_HOME` variable is set, privileges will not be dropped +unless the `openasuser` configuration setting is set. + Using pam-u2f to secure the login to a computer while storing the mapping file in an encrypted home directory, will result in the impossibility of logging into the system. The partition is diff -Nru pam-u2f-1.0.7/man/pamu2fcfg.1 pam-u2f-1.0.8/man/pamu2fcfg.1 --- pam-u2f-1.0.7/man/pamu2fcfg.1 2018-05-02 10:27:58.000000000 +0000 +++ pam-u2f-1.0.8/man/pamu2fcfg.1 2019-06-04 10:49:24.000000000 +0000 @@ -2,12 +2,12 @@ .\" Title: pamu2fcfg .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: Version 1.0.6 +.\" Date: Version 1.0.8 .\" Manual: PAM U2F Configuration Tool .\" Source: pamu2fcfg .\" Language: English .\" -.TH "PAMU2FCFG" "1" "Version 1\&.0\&.6" "pamu2fcfg" "PAM U2F Configuration Tool" +.TH "PAMU2FCFG" "1" "Version 1\&.0\&.8" "pamu2fcfg" "PAM U2F Configuration Tool" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -Nru pam-u2f-1.0.7/NEWS pam-u2f-1.0.8/NEWS --- pam-u2f-1.0.7/NEWS 2018-05-15 08:39:51.000000000 +0000 +++ pam-u2f-1.0.8/NEWS 2019-06-04 10:37:52.000000000 +0000 @@ -2,6 +2,12 @@ pam-u2f NEWS -- History of user-visible changes. -*- outline -*- +* Version 1.0.8 (released 2019-06-04) + ** Fix debug file descriptor leak CVE-2019-12210. + ** Fix insecure debug file handling CVE-2019-12209. + Both reported by Matthias Gerstner of the SUSE Security Team. + ** Fix a non-critical buffer oob access. + * Version 1.0.7 (released 2018-05-15) ** Add authpending_file to signal authentication activity ** Add nodetect to skip to avoid unnecessary cue messages diff -Nru pam-u2f-1.0.7/pam-u2f.c pam-u2f-1.0.8/pam-u2f.c --- pam-u2f-1.0.7/pam-u2f.c 2018-05-02 10:31:58.000000000 +0000 +++ pam-u2f-1.0.8/pam-u2f.c 2019-06-04 09:28:00.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2018 Yubico AB - See COPYING + * Copyright (C) 2014-2019 Yubico AB - See COPYING */ /* Define which PAM interfaces we provide */ @@ -20,6 +20,7 @@ #include #include "util.h" +#include "drop_privs.h" /* If secure_getenv is not defined, define it here */ #ifndef HAVE_SECURE_GETENV @@ -31,7 +32,11 @@ #endif static void parse_cfg(int flags, int argc, const char **argv, cfg_t *cfg) { + struct stat st; + FILE *file = NULL; + int fd = -1; int i; + memset(cfg, 0, sizeof(cfg_t)); cfg->debug_file = stderr; @@ -76,14 +81,14 @@ cfg->debug_file = (FILE *)-1; } else { - struct stat st; - FILE *file; - if(lstat(filename, &st) == 0) { - if(S_ISREG(st.st_mode)) { - file = fopen(filename, "a"); - if(file != NULL) { - cfg->debug_file = file; - } + fd = open(filename, O_WRONLY | O_APPEND | O_CLOEXEC | O_NOFOLLOW | O_NOCTTY); + if (fd >= 0 && (fstat(fd, &st) == 0) && S_ISREG(st.st_mode)) { + file = fdopen(fd, "a"); + if(file != NULL) { + cfg->debug_file = file; + cfg->is_custom_debug_file = 1; + file = NULL; + fd = -1; } } } @@ -111,6 +116,12 @@ D(cfg->debug_file, "appid=%s", cfg->appid ? cfg->appid : "(null)"); D(cfg->debug_file, "prompt=%s", cfg->prompt ? cfg->prompt : "(null)"); } + + if (fd != -1) + close(fd); + + if (file != NULL) + fclose(file); } #ifdef DBG @@ -138,11 +149,12 @@ int retval = PAM_IGNORE; device_t *devices = NULL; unsigned n_devices = 0; - int openasuser; + int openasuser = 0; int should_free_origin = 0; int should_free_appid = 0; int should_free_auth_file = 0; int should_free_authpending_file = 0; + PAM_MODUTIL_DEF_PRIVS(privs); parse_cfg(flags, argc, argv, cfg); @@ -225,6 +237,9 @@ goto done; } + /* Opening a file in a users $HOME, need to drop privs for security */ + openasuser = geteuid() == 0 ? 1 : 0; + snprintf(buf, authfile_dir_len, "%s/.config%s", pw->pw_dir, DEFAULT_AUTHFILE); } else { @@ -240,9 +255,14 @@ snprintf(buf, authfile_dir_len, "%s%s", authfile_dir, DEFAULT_AUTHFILE); + + if (!openasuser) { + DBG("WARNING: not dropping privileges when reading %s, please " + "consider setting openasuser=1 in the module configuration", buf); + } } - DBG("Using default authentication file %s", buf); + DBG("Using authentication file %s", buf); cfg->auth_file = buf; /* cfg takes ownership */ should_free_auth_file = 1; @@ -251,25 +271,28 @@ DBG("Using authentication file %s", cfg->auth_file); } - openasuser = geteuid() == 0 && cfg->openasuser; + if (!openasuser) { + openasuser = geteuid() == 0 && cfg->openasuser; + } if (openasuser) { - if (seteuid(pw_s.pw_uid)) { - DBG("Unable to switch user to uid %i", pw_s.pw_uid); + DBG("Dropping privileges"); + if (pam_modutil_drop_priv(pamh, &privs, pw)) { + DBG("Unable to switch user to uid %i", pw->pw_uid); retval = PAM_IGNORE; goto done; } - DBG("Switched to uid %i", pw_s.pw_uid); + DBG("Switched to uid %i", pw->pw_uid); } retval = get_devices_from_authfile(cfg->auth_file, user, cfg->max_devs, cfg->debug, cfg->debug_file, devices, &n_devices); if (openasuser) { - if (seteuid(0)) { - DBG("Unable to switch back to uid 0"); + if (pam_modutil_regain_priv(pamh, &privs)) { + DBG("could not restore privileges"); retval = PAM_IGNORE; goto done; } - DBG("Switched back to uid 0"); + DBG("Restored privileges"); } if (retval != 1) { @@ -317,7 +340,8 @@ DBG("Using file '%s' for emitting touch request notifications", cfg->authpending_file); // Open (or create) the authpending_file to indicate that we start waiting for a touch - authpending_file_descriptor = open(cfg->authpending_file, O_RDONLY | O_CREAT, 0664); + authpending_file_descriptor = + open(cfg->authpending_file, O_RDONLY | O_CREAT | O_CLOEXEC | O_NOFOLLOW | O_NOCTTY, 0664); if (authpending_file_descriptor < 0) { DBG("Unable to emit 'authentication started' notification by opening the file '%s', (%s)", cfg->authpending_file, strerror(errno)); @@ -385,6 +409,10 @@ } DBG("done. [%s]", pam_strerror(pamh, retval)); + if (cfg->is_custom_debug_file) { + fclose(cfg->debug_file); + } + return retval; } diff -Nru pam-u2f-1.0.7/pamu2fcfg/Makefile.in pam-u2f-1.0.8/pamu2fcfg/Makefile.in --- pam-u2f-1.0.7/pamu2fcfg/Makefile.in 2018-05-15 08:53:18.000000000 +0000 +++ pam-u2f-1.0.8/pamu2fcfg/Makefile.in 2019-06-04 10:49:07.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -127,7 +127,8 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/cmdline.Po ./$(DEPDIR)/pamu2fcfg.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -368,8 +369,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -440,8 +441,14 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmdline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pamu2fcfg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmdline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pamu2fcfg.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -563,7 +570,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -640,7 +650,8 @@ clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/cmdline.Po + -rm -f ./$(DEPDIR)/pamu2fcfg.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -686,7 +697,8 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/cmdline.Po + -rm -f ./$(DEPDIR)/pamu2fcfg.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -709,7 +721,7 @@ .MAKE: all check install install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ diff -Nru pam-u2f-1.0.7/README pam-u2f-1.0.8/README --- pam-u2f-1.0.7/README 2018-05-04 09:34:45.000000000 +0000 +++ pam-u2f-1.0.8/README 2019-06-04 09:28:00.000000000 +0000 @@ -45,7 +45,7 @@ 'Autoconf', 'automake', 'libtool', and 'libpam' must be installed. 'AsciiDoc' and 'xsltproc' are used to generate the manpages. - Debian: apt-get install autoconf automake libtool libpam-dev asciidoc xsltproc libxml2-utils docbook-xml --no-install-recommends + Debian: apt-get install autoconf automake libtool libpam-dev libu2f-host-dev libu2f-server-dev asciidoc xsltproc libxml2-utils docbook-xml --no-install-recommends Generate the build system using: @@ -114,6 +114,8 @@ Setuid to the authenticating user when opening the authfile. Useful when the user's home is stored on an NFS volume mounted with the root_squash option (which maps root to nobody which will not be able to read the file). +Note that after release 1.0.8 this is done by default when no global +authfile or XDG_CONFIG_HOME environment variable has been set. alwaysok:: Set to enable all authentication attempts to succeed (aka presentation mode). @@ -164,6 +166,11 @@ mappings are being used, the central authorization mappings file will not be used. +By default the mapping file inside a home directory will be opened as +the target user, whereas the central file will be opened as `root`. If +the `XDG_CONFIG_HOME` variable is set, privileges will not be dropped +unless the `openasuser` configuration setting is set. + IMPORTANT: Using pam-u2f to secure the login to a computer while storing the mapping file in an encrypted home directory, will result in the impossibility of logging into the system. The partition is @@ -184,6 +191,10 @@ auth sufficient pam_u2f.so authfile=/etc/u2f_mappings +If you do not set the `openasuser` setting, the authfile will be opened +and parsed as `root` so make sure it has the correct owner and +permissions set. + IMPORTANT: On dynamics networks (e.g. where hostnames are set by DHCP), users should not rely on the default origin and appid ("pam://$HOSTNAME") but set those parameters explicitly to the same value. @@ -197,6 +208,13 @@ This is much the same concept as the SSH authorized_keys file. +In this case, pam-u2f will drop privileges and read the mapping file +as that user. This happens regardless of the `openasuser` option being +set. + +Note that if you set the XDG_CONFIG_HOME variable, privileges will not +be dropped by default. Consider also setting `openasuser` in that case. + [[registration]] Obtaining key-handles and public keys ------------------------------------- diff -Nru pam-u2f-1.0.7/tests/Makefile.in pam-u2f-1.0.8/tests/Makefile.in --- pam-u2f-1.0.7/tests/Makefile.in 2018-05-15 08:53:19.000000000 +0000 +++ pam-u2f-1.0.8/tests/Makefile.in 2019-06-04 10:49:07.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -125,7 +125,8 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/basic.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -534,8 +535,8 @@ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -566,7 +567,13 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basic.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basic.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -767,7 +774,7 @@ fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: $(check_PROGRAMS) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -810,7 +817,10 @@ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -885,7 +895,7 @@ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/basic.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -931,7 +941,7 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/basic.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -952,16 +962,16 @@ .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ - ctags ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ + check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags tags-am uninstall uninstall-am diff -Nru pam-u2f-1.0.7/util.c pam-u2f-1.0.8/util.c --- pam-u2f-1.0.7/util.c 2018-05-02 10:31:58.000000000 +0000 +++ pam-u2f-1.0.8/util.c 2019-06-04 09:28:00.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2018 Yubico AB - See COPYING + * Copyright (C) 2014-2019 Yubico AB - See COPYING */ #include "util.h" @@ -36,7 +36,7 @@ /* Ensure we never return uninitialized count. */ *n_devs = 0; - fd = open(authfile, O_RDONLY, 0); + fd = open(authfile, O_RDONLY | O_CLOEXEC | O_NOCTTY); if (fd < 0) { if (verbose) D(debug_file, "Cannot open file: %s (%s)", authfile, strerror(errno)); @@ -83,6 +83,8 @@ if (verbose) D(debug_file, "fdopen: %s", strerror(errno)); goto err; + } else { + fd = -1; /* fd belongs to opwfile */ } buf = malloc(sizeof(char) * (DEVSIZE * max_devs)); @@ -95,8 +97,9 @@ retval = -2; while (fgets(buf, (int)(DEVSIZE * (max_devs - 1)), opwfile)) { char *saveptr = NULL; - if (buf[strlen(buf) - 1] == '\n') - buf[strlen(buf) - 1] = '\0'; + size_t len = strlen(buf); + if (len > 0 && buf[len - 1] == '\n') + buf[len - 1] = '\0'; if (verbose) D(debug_file, "Authorization line: %s", buf); @@ -119,17 +122,17 @@ i = 0; while ((s_token = strtok_r(NULL, ",", &saveptr))) { - devices[i].keyHandle = NULL; - devices[i].publicKey = NULL; - - if ((*n_devs)++ > MAX_DEVS - 1) { - *n_devs = MAX_DEVS; + if ((*n_devs)++ > max_devs - 1) { + *n_devs = max_devs; if (verbose) D(debug_file, "Found more than %d devices, ignoring the remaining ones", - MAX_DEVS); + max_devs); break; } + devices[i].keyHandle = NULL; + devices[i].publicKey = NULL; + if (verbose) D(debug_file, "KeyHandle for device number %d: %s", i + 1, s_token); @@ -211,8 +214,10 @@ if (opwfile) fclose(opwfile); - else if (fd >= 0) + + if (fd != -1) close(fd); + return retval; } @@ -294,6 +299,9 @@ return retval; } + if (cfg->nodetect && cfg->debug) + D(cfg->debug_file, "nodetect option specified, suitable key detection will be skipped"); + i = 0; while (i < n_devs) { @@ -328,9 +336,6 @@ if (cfg->nodetect || (h_rc = u2fh_authenticate(devs, buf, cfg->origin, &response, 0)) == U2FH_OK ) { - if (cfg->nodetect) - D(cfg->debug_file, "nodetect option specified, suitable key detection skipped"); - if (cfg->manual == 0 && cfg->cue && !cued) { cued = 1; converse(pamh, PAM_TEXT_INFO, DEFAULT_CUE); @@ -560,9 +565,15 @@ out = malloc(size); } - size = (unsigned int)sprintf(out, DEBUG_STR, file, line, func); - vsprintf(&out[size], fmt, ap); - va_end(ap); + if (out) { + size = (unsigned int)sprintf(out, DEBUG_STR, file, line, func); + vsprintf(&out[size], fmt, ap); + va_end(ap); + } + else { + out = buffer; + sprintf(out, "debug(pam_u2f): malloc failed when trying to log\n"); + } if (debug_file == (FILE *)-1) { syslog(LOG_AUTHPRIV | LOG_DEBUG, "%s", out); diff -Nru pam-u2f-1.0.7/util.h pam-u2f-1.0.8/util.h --- pam-u2f-1.0.7/util.h 2018-05-02 10:31:58.000000000 +0000 +++ pam-u2f-1.0.8/util.h 2019-06-04 09:28:00.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2018 Yubico AB - See COPYING + * Copyright (C) 2014-2019 Yubico AB - See COPYING */ #ifndef UTIL_H @@ -45,6 +45,7 @@ const char *appid; const char *prompt; FILE *debug_file; + int is_custom_debug_file; } cfg_t; typedef struct {