Compare commits
3 Commits
upstream/4
...
upstream/4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a475f464e0 | ||
|
|
65261e28f4 | ||
|
|
bd724b34e0 |
52
config.h.in
52
config.h.in
@@ -20,10 +20,6 @@
|
||||
/* Path for faillog file. */
|
||||
#undef FAILLOG_FILE
|
||||
|
||||
/* Define to the type of elements in the array set by `getgroups'. Usually
|
||||
this is either `int' or `gid_t'. */
|
||||
#undef GETGROUPS_T
|
||||
|
||||
/* max group name length */
|
||||
#undef GROUP_NAME_MAX_LENGTH
|
||||
|
||||
@@ -53,9 +49,6 @@
|
||||
the CoreFoundation framework. */
|
||||
#undef HAVE_CFPREFERENCESCOPYAPPVALUE
|
||||
|
||||
/* Define to 1 if you have the <crypt.h> header file. */
|
||||
#undef HAVE_CRYPT_H
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
#undef HAVE_DCGETTEXT
|
||||
@@ -119,24 +112,15 @@
|
||||
/* Define to 1 if you have the `getusershell' function. */
|
||||
#undef HAVE_GETUSERSHELL
|
||||
|
||||
/* Define to 1 if you have the <gshadow.h> header file. */
|
||||
#undef HAVE_GSHADOW_H
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
#undef HAVE_ICONV
|
||||
|
||||
/* Define to 1 if you have the `initgroups' function. */
|
||||
#undef HAVE_INITGROUPS
|
||||
|
||||
/* Define to 1 if you have the `innetgr' function. */
|
||||
#undef HAVE_INNETGR
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <lastlog.h> header file. */
|
||||
#undef HAVE_LASTLOG_H
|
||||
|
||||
/* Define to 1 if you have the `lckpwdf' function. */
|
||||
#undef HAVE_LCKPWDF
|
||||
|
||||
@@ -164,9 +148,6 @@
|
||||
/* Define to 1 if you have the <minix/config.h> header file. */
|
||||
#undef HAVE_MINIX_CONFIG_H
|
||||
|
||||
/* Define to 1 if you have the <paths.h> header file. */
|
||||
#undef HAVE_PATHS_H
|
||||
|
||||
/* Define to 1 if you have the `putgrent' function. */
|
||||
#undef HAVE_PUTGRENT
|
||||
|
||||
@@ -179,9 +160,6 @@
|
||||
/* Define to 1 if you have the <readpassphrase.h> header file. */
|
||||
#undef HAVE_READPASSPHRASE_H
|
||||
|
||||
/* Define to 1 if you have the <rpc/key_prot.h> header file. */
|
||||
#undef HAVE_RPC_KEY_PROT_H
|
||||
|
||||
/* Define to 1 if you have the `rpmatch' function. */
|
||||
#undef HAVE_RPMATCH
|
||||
|
||||
@@ -197,9 +175,6 @@
|
||||
/* Define to 1 if you have the <semanage/semanage.h> header file. */
|
||||
#undef HAVE_SEMANAGE_SEMANAGE_H
|
||||
|
||||
/* Define to 1 if you have the `setgroups' function. */
|
||||
#undef HAVE_SETGROUPS
|
||||
|
||||
/* Define to 1 if you have the `sgetgrent' function. */
|
||||
#undef HAVE_SGETGRENT
|
||||
|
||||
@@ -209,12 +184,6 @@
|
||||
/* Define to 1 if you have the `sgetspent' function. */
|
||||
#undef HAVE_SGETSPENT
|
||||
|
||||
/* Define to 1 if you have the <sgtty.h> header file. */
|
||||
#undef HAVE_SGTTY_H
|
||||
|
||||
/* Have working shadow group support in libc */
|
||||
#undef HAVE_SHADOWGRP
|
||||
|
||||
/* Define if you have the shl_load function. */
|
||||
#undef HAVE_SHL_LOAD
|
||||
|
||||
@@ -260,15 +229,6 @@
|
||||
/* Define to 1 if `ut_xtime' is a member of `struct utmpx'. */
|
||||
#undef HAVE_STRUCT_UTMPX_UT_XTIME
|
||||
|
||||
/* Define to 1 if you have the <sys/capability.h> header file. */
|
||||
#undef HAVE_SYS_CAPABILITY_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/random.h> header file. */
|
||||
#undef HAVE_SYS_RANDOM_H
|
||||
|
||||
/* Define to 1 if you have the <sys/statfs.h> header file. */
|
||||
#undef HAVE_SYS_STATFS_H
|
||||
|
||||
@@ -281,9 +241,6 @@
|
||||
/* Define to 1 if you have the <tcb.h> header file. */
|
||||
#undef HAVE_TCB_H
|
||||
|
||||
/* Define to 1 if you have the <termio.h> header file. */
|
||||
#undef HAVE_TERMIO_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
@@ -296,9 +253,6 @@
|
||||
/* Define to 1 if `utime(file, NULL)' sets file's timestamp to the present. */
|
||||
#undef HAVE_UTIME_NULL
|
||||
|
||||
/* Define to 1 if you have the <utmp.h> header file. */
|
||||
#undef HAVE_UTMP_H
|
||||
|
||||
/* Define to support vendor settings. */
|
||||
#undef HAVE_VENDORDIR
|
||||
|
||||
@@ -517,9 +471,3 @@
|
||||
|
||||
/* Path for wtmp file. */
|
||||
#undef _WTMP_FILE
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef gid_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef uid_t
|
||||
|
||||
619
configure
vendored
619
configure
vendored
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.71 for shadow 4.17.0.
|
||||
# Generated by GNU Autoconf 2.71 for shadow 4.17.3.
|
||||
#
|
||||
# Report bugs to <pkg-shadow-devel@lists.alioth.debian.org>.
|
||||
#
|
||||
@@ -621,8 +621,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='shadow'
|
||||
PACKAGE_TARNAME='shadow'
|
||||
PACKAGE_VERSION='4.17.0'
|
||||
PACKAGE_STRING='shadow 4.17.0'
|
||||
PACKAGE_VERSION='4.17.3'
|
||||
PACKAGE_STRING='shadow 4.17.3'
|
||||
PACKAGE_BUGREPORT='pkg-shadow-devel@lists.alioth.debian.org'
|
||||
PACKAGE_URL='https://github.com/shadow-maint/shadow'
|
||||
|
||||
@@ -671,6 +671,7 @@ INTLLIBS
|
||||
LTLIBICONV
|
||||
LIBICONV
|
||||
INTL_MACOSX_LIBS
|
||||
CPP
|
||||
XGETTEXT_EXTRA_OPTIONS
|
||||
MSGMERGE
|
||||
XGETTEXT_015
|
||||
@@ -744,7 +745,6 @@ USE_SHA_CRYPT_FALSE
|
||||
USE_SHA_CRYPT_TRUE
|
||||
GROUP_NAME_MAX_LENGTH
|
||||
LIBOBJS
|
||||
CPP
|
||||
LIBADD_DL
|
||||
LT_DLPREOPEN
|
||||
LIBADD_DLD_LINK
|
||||
@@ -932,14 +932,14 @@ CPPFLAGS
|
||||
YACC
|
||||
YFLAGS
|
||||
LT_SYS_LIBRARY_PATH
|
||||
CPP
|
||||
PKG_CONFIG
|
||||
PKG_CONFIG_PATH
|
||||
PKG_CONFIG_LIBDIR
|
||||
CMOCKA_CFLAGS
|
||||
CMOCKA_LIBS
|
||||
LIBBSD_CFLAGS
|
||||
LIBBSD_LIBS'
|
||||
LIBBSD_LIBS
|
||||
CPP'
|
||||
|
||||
|
||||
# Initialize some variables set by options.
|
||||
@@ -1488,7 +1488,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# 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 shadow 4.17.0 to adapt to many kinds of systems.
|
||||
\`configure' configures shadow 4.17.3 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -1559,7 +1559,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of shadow 4.17.0:";;
|
||||
short | recursive ) echo "Configuration of shadow 4.17.3:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1657,7 +1657,6 @@ Some influential environment variables:
|
||||
default value of `-d' given by some make applications.
|
||||
LT_SYS_LIBRARY_PATH
|
||||
User-defined run-time library search path.
|
||||
CPP C preprocessor
|
||||
PKG_CONFIG path to pkg-config utility
|
||||
PKG_CONFIG_PATH
|
||||
directories to add to pkg-config's search path
|
||||
@@ -1669,6 +1668,7 @@ Some influential environment variables:
|
||||
LIBBSD_CFLAGS
|
||||
C compiler flags for LIBBSD, overriding pkg-config
|
||||
LIBBSD_LIBS linker flags for LIBBSD, overriding pkg-config
|
||||
CPP C preprocessor
|
||||
|
||||
Use these variables to override the choices made by `configure' or to help
|
||||
it to find libraries and programs with nonstandard names/locations.
|
||||
@@ -1738,7 +1738,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
shadow configure 4.17.0
|
||||
shadow configure 4.17.3
|
||||
generated by GNU Autoconf 2.71
|
||||
|
||||
Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
@@ -2045,44 +2045,6 @@ printf "%s\n" "$ac_res" >&6; }
|
||||
|
||||
} # ac_fn_c_check_member
|
||||
|
||||
# ac_fn_c_try_cpp LINENO
|
||||
# ----------------------
|
||||
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
|
||||
ac_fn_c_try_cpp ()
|
||||
{
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
if { { ac_try="$ac_cpp conftest.$ac_ext"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||
printf "%s\n" "$ac_try_echo"; } >&5
|
||||
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
|
||||
ac_status=$?
|
||||
if test -s conftest.err; then
|
||||
grep -v '^ *+' conftest.err >conftest.er1
|
||||
cat conftest.er1 >&5
|
||||
mv -f conftest.er1 conftest.err
|
||||
fi
|
||||
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; } > conftest.i && {
|
||||
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
}
|
||||
then :
|
||||
ac_retval=0
|
||||
else $as_nop
|
||||
printf "%s\n" "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_retval=1
|
||||
fi
|
||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||
as_fn_set_status $ac_retval
|
||||
|
||||
} # ac_fn_c_try_cpp
|
||||
|
||||
# ac_fn_c_try_run LINENO
|
||||
# ----------------------
|
||||
# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
|
||||
@@ -2314,6 +2276,44 @@ rm -f conftest.val
|
||||
as_fn_set_status $ac_retval
|
||||
|
||||
} # ac_fn_c_compute_int
|
||||
|
||||
# ac_fn_c_try_cpp LINENO
|
||||
# ----------------------
|
||||
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
|
||||
ac_fn_c_try_cpp ()
|
||||
{
|
||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||
if { { ac_try="$ac_cpp conftest.$ac_ext"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||
printf "%s\n" "$ac_try_echo"; } >&5
|
||||
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
|
||||
ac_status=$?
|
||||
if test -s conftest.err; then
|
||||
grep -v '^ *+' conftest.err >conftest.er1
|
||||
cat conftest.er1 >&5
|
||||
mv -f conftest.er1 conftest.err
|
||||
fi
|
||||
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; } > conftest.i && {
|
||||
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
}
|
||||
then :
|
||||
ac_retval=0
|
||||
else $as_nop
|
||||
printf "%s\n" "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_retval=1
|
||||
fi
|
||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||
as_fn_set_status $ac_retval
|
||||
|
||||
} # ac_fn_c_try_cpp
|
||||
ac_configure_args_raw=
|
||||
for ac_arg
|
||||
do
|
||||
@@ -2338,7 +2338,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by shadow $as_me 4.17.0, which was
|
||||
It was created by shadow $as_me 4.17.3, which was
|
||||
generated by GNU Autoconf 2.71. Invocation command line was
|
||||
|
||||
$ $0$ac_configure_args_raw
|
||||
@@ -3611,7 +3611,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='shadow'
|
||||
VERSION='4.17.0'
|
||||
VERSION='4.17.3'
|
||||
|
||||
|
||||
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
|
||||
@@ -14700,92 +14700,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
|
||||
|
||||
ac_fn_c_check_header_compile "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_crypt_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_CRYPT_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "utmp.h" "ac_cv_header_utmp_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_utmp_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_UTMP_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "termio.h" "ac_cv_header_termio_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_termio_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_TERMIO_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "sgtty.h" "ac_cv_header_sgtty_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_sgtty_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_SGTTY_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_sys_ioctl_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "paths.h" "ac_cv_header_paths_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_paths_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_PATHS_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_sys_capability_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_SYS_CAPABILITY_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "sys/random.h" "ac_cv_header_sys_random_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_sys_random_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_SYS_RANDOM_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "gshadow.h" "ac_cv_header_gshadow_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_gshadow_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_GSHADOW_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "lastlog.h" "ac_cv_header_lastlog_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_lastlog_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_LASTLOG_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "rpc/key_prot.h" "ac_cv_header_rpc_key_prot_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_rpc_key_prot_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_RPC_KEY_PROT_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "acl/libacl.h" "ac_cv_header_acl_libacl_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_acl_libacl_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_ACL_LIBACL_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "attr/libattr.h" "ac_cv_header_attr_libattr_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_attr_libattr_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_ATTR_LIBATTR_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_header_compile "$LINENO" "attr/error_context.h" "ac_cv_header_attr_error_context_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_attr_error_context_h" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_ATTR_ERROR_CONTEXT_H 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
|
||||
ac_fn_c_check_header_compile "$LINENO" "shadow.h" "ac_cv_header_shadow_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_shadow_h" = xyes
|
||||
then :
|
||||
@@ -14830,12 +14744,6 @@ if test "x$ac_cv_func_getusershell" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_GETUSERSHELL 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_func "$LINENO" "initgroups" "ac_cv_func_initgroups"
|
||||
if test "x$ac_cv_func_initgroups" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_INITGROUPS 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_func "$LINENO" "lckpwdf" "ac_cv_func_lckpwdf"
|
||||
if test "x$ac_cv_func_lckpwdf" = xyes
|
||||
@@ -14848,12 +14756,6 @@ if test "x$ac_cv_func_lutimes" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_LUTIMES 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_func "$LINENO" "setgroups" "ac_cv_func_setgroups"
|
||||
if test "x$ac_cv_func_setgroups" = xyes
|
||||
then :
|
||||
printf "%s\n" "#define HAVE_SETGROUPS 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
ac_fn_c_check_func "$LINENO" "updwtmpx" "ac_cv_func_updwtmpx"
|
||||
if test "x$ac_cv_func_updwtmpx" = xyes
|
||||
@@ -15175,240 +15077,6 @@ printf "%s\n" "#define HAVE_STRUCT_UTMPX_UT_XTIME 1" >>confdefs.h
|
||||
fi
|
||||
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
|
||||
printf %s "checking how to run the C preprocessor... " >&6; }
|
||||
# On Suns, sometimes $CPP names a directory.
|
||||
if test -n "$CPP" && test -d "$CPP"; then
|
||||
CPP=
|
||||
fi
|
||||
if test -z "$CPP"; then
|
||||
if test ${ac_cv_prog_CPP+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else $as_nop
|
||||
# Double quotes because $CC needs to be expanded
|
||||
for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
|
||||
do
|
||||
ac_preproc_ok=false
|
||||
for ac_c_preproc_warn_flag in '' yes
|
||||
do
|
||||
# Use a header file that comes with gcc, so configuring glibc
|
||||
# with a fresh cross-compiler works.
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp. "Syntax error" is here to catch this case.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <limits.h>
|
||||
Syntax error
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"
|
||||
then :
|
||||
|
||||
else $as_nop
|
||||
# Broken: fails on valid input.
|
||||
continue
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
# OK, works on sane cases. Now check whether nonexistent headers
|
||||
# can be detected and how.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <ac_nonexistent.h>
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"
|
||||
then :
|
||||
# Broken: success on invalid input.
|
||||
continue
|
||||
else $as_nop
|
||||
# Passes both tests.
|
||||
ac_preproc_ok=:
|
||||
break
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
done
|
||||
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||
rm -f conftest.i conftest.err conftest.$ac_ext
|
||||
if $ac_preproc_ok
|
||||
then :
|
||||
break
|
||||
fi
|
||||
|
||||
done
|
||||
ac_cv_prog_CPP=$CPP
|
||||
|
||||
fi
|
||||
CPP=$ac_cv_prog_CPP
|
||||
else
|
||||
ac_cv_prog_CPP=$CPP
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
|
||||
printf "%s\n" "$CPP" >&6; }
|
||||
ac_preproc_ok=false
|
||||
for ac_c_preproc_warn_flag in '' yes
|
||||
do
|
||||
# Use a header file that comes with gcc, so configuring glibc
|
||||
# with a fresh cross-compiler works.
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp. "Syntax error" is here to catch this case.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <limits.h>
|
||||
Syntax error
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"
|
||||
then :
|
||||
|
||||
else $as_nop
|
||||
# Broken: fails on valid input.
|
||||
continue
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
# OK, works on sane cases. Now check whether nonexistent headers
|
||||
# can be detected and how.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <ac_nonexistent.h>
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"
|
||||
then :
|
||||
# Broken: success on invalid input.
|
||||
continue
|
||||
else $as_nop
|
||||
# Passes both tests.
|
||||
ac_preproc_ok=:
|
||||
break
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
done
|
||||
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||
rm -f conftest.i conftest.err conftest.$ac_ext
|
||||
if $ac_preproc_ok
|
||||
then :
|
||||
|
||||
else $as_nop
|
||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
|
||||
printf %s "checking for uid_t in sys/types.h... " >&6; }
|
||||
if test ${ac_cv_type_uid_t+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else $as_nop
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <sys/types.h>
|
||||
|
||||
_ACEOF
|
||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
$EGREP "uid_t" >/dev/null 2>&1
|
||||
then :
|
||||
ac_cv_type_uid_t=yes
|
||||
else $as_nop
|
||||
ac_cv_type_uid_t=no
|
||||
fi
|
||||
rm -rf conftest*
|
||||
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
|
||||
printf "%s\n" "$ac_cv_type_uid_t" >&6; }
|
||||
if test $ac_cv_type_uid_t = no; then
|
||||
|
||||
printf "%s\n" "#define uid_t int" >>confdefs.h
|
||||
|
||||
|
||||
printf "%s\n" "#define gid_t int" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking type of array argument to getgroups" >&5
|
||||
printf %s "checking type of array argument to getgroups... " >&6; }
|
||||
if test ${ac_cv_type_getgroups+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else $as_nop
|
||||
if test "$cross_compiling" = yes
|
||||
then :
|
||||
ac_cv_type_getgroups=cross
|
||||
else $as_nop
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
/* Thanks to Mike Rendell for this test. */
|
||||
$ac_includes_default
|
||||
#define NGID 256
|
||||
#undef MAX
|
||||
#define MAX(x, y) ((x) > (y) ? (x) : (y))
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
gid_t gidset[NGID];
|
||||
int i, n;
|
||||
union { gid_t gval; long int lval; } val;
|
||||
|
||||
val.lval = -1;
|
||||
for (i = 0; i < NGID; i++)
|
||||
gidset[i] = val.gval;
|
||||
n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1,
|
||||
gidset);
|
||||
/* Exit non-zero if getgroups seems to require an array of ints. This
|
||||
happens when gid_t is short int but getgroups modifies an array
|
||||
of ints. */
|
||||
return n > 0 && gidset[n] != val.gval;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_run "$LINENO"
|
||||
then :
|
||||
ac_cv_type_getgroups=gid_t
|
||||
else $as_nop
|
||||
ac_cv_type_getgroups=int
|
||||
fi
|
||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
fi
|
||||
|
||||
if test $ac_cv_type_getgroups = cross; then
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <unistd.h>
|
||||
|
||||
_ACEOF
|
||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
$EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1
|
||||
then :
|
||||
ac_cv_type_getgroups=gid_t
|
||||
else $as_nop
|
||||
ac_cv_type_getgroups=int
|
||||
fi
|
||||
rm -rf conftest*
|
||||
|
||||
fi
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_getgroups" >&5
|
||||
printf "%s\n" "$ac_cv_type_getgroups" >&6; }
|
||||
|
||||
printf "%s\n" "#define GETGROUPS_T $ac_cv_type_getgroups" >>confdefs.h
|
||||
|
||||
|
||||
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether utime accepts a null argument" >&5
|
||||
@@ -15559,56 +15227,6 @@ printf "%s\n" "#define HAS_SECURE_GETENV 1" >>confdefs.h
|
||||
fi
|
||||
|
||||
|
||||
if test "$ac_cv_header_shadow_h" = "yes"; then
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working shadow group support" >&5
|
||||
printf %s "checking for working shadow group support... " >&6; }
|
||||
if test ${ac_cv_libc_shadowgrp+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else $as_nop
|
||||
if test "$cross_compiling" = yes
|
||||
then :
|
||||
ac_cv_libc_shadowgrp=no
|
||||
|
||||
else $as_nop
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <shadow.h>
|
||||
#ifdef HAVE_GSHADOW_H
|
||||
#include <gshadow.h>
|
||||
#endif
|
||||
int
|
||||
main()
|
||||
{
|
||||
struct sgrp *sg = sgetsgent("test:x::");
|
||||
/* NYS libc on Red Hat 3.0.3 has broken shadow group support */
|
||||
return !sg || !sg->sg_adm || !sg->sg_mem;
|
||||
}
|
||||
|
||||
_ACEOF
|
||||
if ac_fn_c_try_run "$LINENO"
|
||||
then :
|
||||
ac_cv_libc_shadowgrp=yes
|
||||
else $as_nop
|
||||
ac_cv_libc_shadowgrp=no
|
||||
fi
|
||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libc_shadowgrp" >&5
|
||||
printf "%s\n" "$ac_cv_libc_shadowgrp" >&6; }
|
||||
|
||||
if test "$ac_cv_libc_shadowgrp" = "yes"; then
|
||||
|
||||
printf "%s\n" "#define HAVE_SHADOWGRP 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking location of shared mail directory" >&5
|
||||
printf %s "checking location of shared mail directory... " >&6; }
|
||||
if test ${shadow_cv_maildir+y}
|
||||
@@ -18612,6 +18230,139 @@ else $as_nop
|
||||
fi
|
||||
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
|
||||
printf %s "checking how to run the C preprocessor... " >&6; }
|
||||
# On Suns, sometimes $CPP names a directory.
|
||||
if test -n "$CPP" && test -d "$CPP"; then
|
||||
CPP=
|
||||
fi
|
||||
if test -z "$CPP"; then
|
||||
if test ${ac_cv_prog_CPP+y}
|
||||
then :
|
||||
printf %s "(cached) " >&6
|
||||
else $as_nop
|
||||
# Double quotes because $CC needs to be expanded
|
||||
for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
|
||||
do
|
||||
ac_preproc_ok=false
|
||||
for ac_c_preproc_warn_flag in '' yes
|
||||
do
|
||||
# Use a header file that comes with gcc, so configuring glibc
|
||||
# with a fresh cross-compiler works.
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp. "Syntax error" is here to catch this case.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <limits.h>
|
||||
Syntax error
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"
|
||||
then :
|
||||
|
||||
else $as_nop
|
||||
# Broken: fails on valid input.
|
||||
continue
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
# OK, works on sane cases. Now check whether nonexistent headers
|
||||
# can be detected and how.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <ac_nonexistent.h>
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"
|
||||
then :
|
||||
# Broken: success on invalid input.
|
||||
continue
|
||||
else $as_nop
|
||||
# Passes both tests.
|
||||
ac_preproc_ok=:
|
||||
break
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
done
|
||||
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||
rm -f conftest.i conftest.err conftest.$ac_ext
|
||||
if $ac_preproc_ok
|
||||
then :
|
||||
break
|
||||
fi
|
||||
|
||||
done
|
||||
ac_cv_prog_CPP=$CPP
|
||||
|
||||
fi
|
||||
CPP=$ac_cv_prog_CPP
|
||||
else
|
||||
ac_cv_prog_CPP=$CPP
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
|
||||
printf "%s\n" "$CPP" >&6; }
|
||||
ac_preproc_ok=false
|
||||
for ac_c_preproc_warn_flag in '' yes
|
||||
do
|
||||
# Use a header file that comes with gcc, so configuring glibc
|
||||
# with a fresh cross-compiler works.
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp. "Syntax error" is here to catch this case.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <limits.h>
|
||||
Syntax error
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"
|
||||
then :
|
||||
|
||||
else $as_nop
|
||||
# Broken: fails on valid input.
|
||||
continue
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
# OK, works on sane cases. Now check whether nonexistent headers
|
||||
# can be detected and how.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <ac_nonexistent.h>
|
||||
_ACEOF
|
||||
if ac_fn_c_try_cpp "$LINENO"
|
||||
then :
|
||||
# Broken: success on invalid input.
|
||||
continue
|
||||
else $as_nop
|
||||
# Passes both tests.
|
||||
ac_preproc_ok=:
|
||||
break
|
||||
fi
|
||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
|
||||
done
|
||||
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
|
||||
rm -f conftest.i conftest.err conftest.$ac_ext
|
||||
if $ac_preproc_ok
|
||||
then :
|
||||
|
||||
else $as_nop
|
||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
fi
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
|
||||
|
||||
|
||||
acl_libdirstem=lib
|
||||
@@ -20846,7 +20597,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by shadow $as_me 4.17.0, which was
|
||||
This file was extended by shadow $as_me 4.17.3, which was
|
||||
generated by GNU Autoconf 2.71. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -20915,7 +20666,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config='$ac_cs_config_escaped'
|
||||
ac_cs_version="\\
|
||||
shadow config.status 4.17.0
|
||||
shadow config.status 4.17.3
|
||||
configured by $0, generated by GNU Autoconf 2.71,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
||||
41
configure.ac
41
configure.ac
@@ -4,7 +4,7 @@ m4_define([libsubid_abi_major], 5)
|
||||
m4_define([libsubid_abi_minor], 0)
|
||||
m4_define([libsubid_abi_micro], 0)
|
||||
m4_define([libsubid_abi], [libsubid_abi_major.libsubid_abi_minor.libsubid_abi_micro])
|
||||
AC_INIT([shadow], [4.17.0], [pkg-shadow-devel@lists.alioth.debian.org], [],
|
||||
AC_INIT([shadow], [4.17.3], [pkg-shadow-devel@lists.alioth.debian.org], [],
|
||||
[https://github.com/shadow-maint/shadow])
|
||||
AM_INIT_AUTOMAKE([1.11 foreign dist-xz subdir-objects tar-pax])
|
||||
AC_CONFIG_MACRO_DIRS([m4])
|
||||
@@ -36,20 +36,13 @@ LT_LIB_DLLOAD
|
||||
|
||||
dnl Checks for libraries.
|
||||
|
||||
dnl Checks for header files.
|
||||
AC_CHECK_HEADERS(crypt.h utmp.h \
|
||||
termio.h sgtty.h sys/ioctl.h paths.h \
|
||||
sys/capability.h sys/random.h \
|
||||
gshadow.h lastlog.h rpc/key_prot.h acl/libacl.h \
|
||||
attr/libattr.h attr/error_context.h)
|
||||
|
||||
dnl shadow now uses the libc's shadow implementation
|
||||
AC_CHECK_HEADER([shadow.h],,[AC_MSG_ERROR([You need a libc with shadow.h])])
|
||||
|
||||
AC_CHECK_FUNCS(arc4random_buf futimes \
|
||||
getentropy getrandom getspnam getusershell \
|
||||
initgroups lckpwdf lutimes \
|
||||
setgroups updwtmpx innetgr \
|
||||
lckpwdf lutimes \
|
||||
updwtmpx innetgr \
|
||||
getspnam_r \
|
||||
rpmatch \
|
||||
memset_explicit explicit_bzero stpecpy stpeprintf)
|
||||
@@ -66,7 +59,6 @@ AC_CHECK_MEMBERS([struct utmpx.ut_name,
|
||||
struct utmpx.ut_xtime],,,[[#include <utmpx.h>]])
|
||||
|
||||
dnl Checks for library functions.
|
||||
AC_TYPE_GETGROUPS
|
||||
AC_FUNC_UTIME_NULL
|
||||
AC_REPLACE_FUNCS(putgrent putpwent putspent)
|
||||
AC_REPLACE_FUNCS(sgetgrent sgetpwent sgetspent)
|
||||
@@ -76,33 +68,6 @@ AC_CHECK_FUNC(secure_getenv, [AC_DEFINE(HAS_SECURE_GETENV,
|
||||
1,
|
||||
[Defined to 1 if you have the declaration of 'secure_getenv'])])
|
||||
|
||||
if test "$ac_cv_header_shadow_h" = "yes"; then
|
||||
AC_CACHE_CHECK(for working shadow group support,
|
||||
ac_cv_libc_shadowgrp,
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([
|
||||
#include <shadow.h>
|
||||
#ifdef HAVE_GSHADOW_H
|
||||
#include <gshadow.h>
|
||||
#endif
|
||||
int
|
||||
main()
|
||||
{
|
||||
struct sgrp *sg = sgetsgent("test:x::");
|
||||
/* NYS libc on Red Hat 3.0.3 has broken shadow group support */
|
||||
return !sg || !sg->sg_adm || !sg->sg_mem;
|
||||
}]
|
||||
)],
|
||||
[ac_cv_libc_shadowgrp=yes],
|
||||
[ac_cv_libc_shadowgrp=no],
|
||||
[ac_cv_libc_shadowgrp=no]
|
||||
)
|
||||
)
|
||||
|
||||
if test "$ac_cv_libc_shadowgrp" = "yes"; then
|
||||
AC_DEFINE(HAVE_SHADOWGRP, 1, [Have working shadow group support in libc])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([location of shared mail directory], shadow_cv_maildir,
|
||||
[for shadow_cv_maildir in /var/mail /var/spool/mail /usr/spool/mail /usr/mail none; do
|
||||
if test -d $shadow_cv_maildir; then
|
||||
|
||||
@@ -1751,7 +1751,7 @@
|
||||
}
|
||||
#ifdef HAS_SHADOW
|
||||
if ((pw->pw_passwd && pw->pw_passwd[0] == '@'
|
||||
&& pw_auth (pw->pw_passwd+1, pw->pw_name, PW_LOGIN, NULL))
|
||||
&& pw_auth(pw->pw_passwd+1, pw->pw_name))
|
||||
|| !valid (passwd, pw)) {
|
||||
return (UPAP_AUTHNAK);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ pamd_files = \
|
||||
passwd
|
||||
|
||||
pamd_acct_tools_files = \
|
||||
chage \
|
||||
chgpasswd \
|
||||
groupadd \
|
||||
groupdel \
|
||||
|
||||
@@ -342,7 +342,6 @@ top_srcdir = @top_srcdir@
|
||||
pamd_files = chpasswd chfn chsh groupmems login newusers passwd \
|
||||
$(am__append_2)
|
||||
pamd_acct_tools_files = \
|
||||
chage \
|
||||
chgpasswd \
|
||||
groupadd \
|
||||
groupdel \
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
#%PAM-1.0
|
||||
auth sufficient pam_rootok.so
|
||||
account required pam_permit.so
|
||||
password include system-auth
|
||||
@@ -155,6 +155,14 @@ libshadow_la_SOURCES = \
|
||||
run_part.h \
|
||||
run_part.c \
|
||||
salt.c \
|
||||
search/cmp/cmp.c \
|
||||
search/cmp/cmp.h \
|
||||
search/l/lfind.c \
|
||||
search/l/lfind.h \
|
||||
search/l/lsearch.c \
|
||||
search/l/lsearch.h \
|
||||
search/sort/qsort.c \
|
||||
search/sort/qsort.h \
|
||||
selinux.c \
|
||||
semanage.c \
|
||||
setugid.c \
|
||||
@@ -165,6 +173,8 @@ libshadow_la_SOURCES = \
|
||||
sgroupio.c \
|
||||
sgroupio.h\
|
||||
shadow.c \
|
||||
shadow/grp/agetgroups.c \
|
||||
shadow/grp/agetgroups.h \
|
||||
shadowio.c \
|
||||
shadowio.h \
|
||||
shadowlog.c \
|
||||
@@ -176,6 +186,8 @@ libshadow_la_SOURCES = \
|
||||
spawn.c \
|
||||
sssd.c \
|
||||
sssd.h \
|
||||
string/ctype/strisascii/strisdigit.c \
|
||||
string/ctype/strisascii/strisdigit.h \
|
||||
string/memset/memzero.c \
|
||||
string/memset/memzero.h \
|
||||
string/sprintf/snprintf.c \
|
||||
@@ -186,12 +198,12 @@ libshadow_la_SOURCES = \
|
||||
string/sprintf/xasprintf.h \
|
||||
string/strchr/strchrcnt.c \
|
||||
string/strchr/strchrcnt.h \
|
||||
string/strchr/stpspn.c \
|
||||
string/strchr/stpspn.h \
|
||||
string/strchr/strchrscnt.c \
|
||||
string/strchr/strchrscnt.h \
|
||||
string/strchr/strnul.c \
|
||||
string/strchr/strnul.h \
|
||||
string/strchr/strrspn.c \
|
||||
string/strchr/strrspn.h \
|
||||
string/strcmp/strcaseeq.c \
|
||||
string/strcmp/strcaseeq.h \
|
||||
string/strcmp/streq.c \
|
||||
string/strcmp/streq.h \
|
||||
string/strcpy/stpecpy.c \
|
||||
@@ -210,6 +222,16 @@ libshadow_la_SOURCES = \
|
||||
string/strdup/xstrndup.h \
|
||||
string/strftime.c \
|
||||
string/strftime.h \
|
||||
string/strspn/stpspn.c \
|
||||
string/strspn/stpspn.h \
|
||||
string/strspn/stprcspn.c \
|
||||
string/strspn/stprcspn.h \
|
||||
string/strspn/stprspn.c \
|
||||
string/strspn/stprspn.h \
|
||||
string/strspn/strrcspn.c \
|
||||
string/strspn/strrcspn.h \
|
||||
string/strspn/strrspn.c \
|
||||
string/strspn/strrspn.h \
|
||||
string/strtok/stpsep.c \
|
||||
string/strtok/stpsep.h \
|
||||
strtoday.c \
|
||||
|
||||
332
lib/Makefile.in
332
lib/Makefile.in
@@ -151,19 +151,24 @@ am__libshadow_la_SOURCES_DIST = addgrps.c adds.c adds.h age.c \
|
||||
pam_defs.h pam_pass.c pam_pass_non_interactive.c port.c port.h \
|
||||
prefix_flag.c prototypes.h pwauth.c pwauth.h pwio.c pwio.h \
|
||||
pwd_init.c pwd2spwd.c pwdcheck.c pwmem.c remove_tree.c \
|
||||
root_flag.c run_part.h run_part.c salt.c selinux.c semanage.c \
|
||||
setugid.c setupenv.c sgetgrent.c sgetpwent.c sgetspent.c \
|
||||
sgroupio.c sgroupio.h shadow.c shadowio.c shadowio.h \
|
||||
shadowlog.c shadowlog.h shadowlog_internal.h shadowmem.c \
|
||||
shell.c sizeof.h spawn.c sssd.c sssd.h string/memset/memzero.c \
|
||||
root_flag.c run_part.h run_part.c salt.c search/cmp/cmp.c \
|
||||
search/cmp/cmp.h search/l/lfind.c search/l/lfind.h \
|
||||
search/l/lsearch.c search/l/lsearch.h search/sort/qsort.c \
|
||||
search/sort/qsort.h selinux.c semanage.c setugid.c setupenv.c \
|
||||
sgetgrent.c sgetpwent.c sgetspent.c sgroupio.c sgroupio.h \
|
||||
shadow.c shadow/grp/agetgroups.c shadow/grp/agetgroups.h \
|
||||
shadowio.c shadowio.h shadowlog.c shadowlog.h \
|
||||
shadowlog_internal.h shadowmem.c shell.c sizeof.h spawn.c \
|
||||
sssd.c sssd.h string/ctype/strisascii/strisdigit.c \
|
||||
string/ctype/strisascii/strisdigit.h string/memset/memzero.c \
|
||||
string/memset/memzero.h string/sprintf/snprintf.c \
|
||||
string/sprintf/snprintf.h string/sprintf/stpeprintf.c \
|
||||
string/sprintf/stpeprintf.h string/sprintf/xasprintf.c \
|
||||
string/sprintf/xasprintf.h string/strchr/strchrcnt.c \
|
||||
string/strchr/strchrcnt.h string/strchr/stpspn.c \
|
||||
string/strchr/stpspn.h string/strchr/strnul.c \
|
||||
string/strchr/strnul.h string/strchr/strrspn.c \
|
||||
string/strchr/strrspn.h string/strcmp/streq.c \
|
||||
string/strchr/strchrcnt.h string/strchr/strchrscnt.c \
|
||||
string/strchr/strchrscnt.h string/strchr/strnul.c \
|
||||
string/strchr/strnul.h string/strcmp/strcaseeq.c \
|
||||
string/strcmp/strcaseeq.h string/strcmp/streq.c \
|
||||
string/strcmp/streq.h string/strcpy/stpecpy.c \
|
||||
string/strcpy/stpecpy.h string/strcpy/strncat.c \
|
||||
string/strcpy/strncat.h string/strcpy/strncpy.c \
|
||||
@@ -172,6 +177,11 @@ am__libshadow_la_SOURCES_DIST = addgrps.c adds.c adds.h age.c \
|
||||
string/strdup/strndupa.h string/strdup/xstrdup.c \
|
||||
string/strdup/xstrdup.h string/strdup/xstrndup.c \
|
||||
string/strdup/xstrndup.h string/strftime.c string/strftime.h \
|
||||
string/strspn/stpspn.c string/strspn/stpspn.h \
|
||||
string/strspn/stprcspn.c string/strspn/stprcspn.h \
|
||||
string/strspn/stprspn.c string/strspn/stprspn.h \
|
||||
string/strspn/strrcspn.c string/strspn/strrcspn.h \
|
||||
string/strspn/strrspn.c string/strspn/strrspn.h \
|
||||
string/strtok/stpsep.c string/strtok/stpsep.h strtoday.c sub.c \
|
||||
subordinateio.h subordinateio.c sulog.c time/day_to_str.c \
|
||||
time/day_to_str.h ttytype.c typetraits.h tz.c ulimit.c \
|
||||
@@ -235,22 +245,27 @@ am_libshadow_la_OBJECTS = libshadow_la-addgrps.lo libshadow_la-adds.lo \
|
||||
libshadow_la-pwd2spwd.lo libshadow_la-pwdcheck.lo \
|
||||
libshadow_la-pwmem.lo libshadow_la-remove_tree.lo \
|
||||
libshadow_la-root_flag.lo libshadow_la-run_part.lo \
|
||||
libshadow_la-salt.lo libshadow_la-selinux.lo \
|
||||
libshadow_la-salt.lo search/cmp/libshadow_la-cmp.lo \
|
||||
search/l/libshadow_la-lfind.lo \
|
||||
search/l/libshadow_la-lsearch.lo \
|
||||
search/sort/libshadow_la-qsort.lo libshadow_la-selinux.lo \
|
||||
libshadow_la-semanage.lo libshadow_la-setugid.lo \
|
||||
libshadow_la-setupenv.lo libshadow_la-sgetgrent.lo \
|
||||
libshadow_la-sgetpwent.lo libshadow_la-sgetspent.lo \
|
||||
libshadow_la-sgroupio.lo libshadow_la-shadow.lo \
|
||||
libshadow_la-shadowio.lo libshadow_la-shadowlog.lo \
|
||||
libshadow_la-shadowmem.lo libshadow_la-shell.lo \
|
||||
libshadow_la-spawn.lo libshadow_la-sssd.lo \
|
||||
shadow/grp/libshadow_la-agetgroups.lo libshadow_la-shadowio.lo \
|
||||
libshadow_la-shadowlog.lo libshadow_la-shadowmem.lo \
|
||||
libshadow_la-shell.lo libshadow_la-spawn.lo \
|
||||
libshadow_la-sssd.lo \
|
||||
string/ctype/strisascii/libshadow_la-strisdigit.lo \
|
||||
string/memset/libshadow_la-memzero.lo \
|
||||
string/sprintf/libshadow_la-snprintf.lo \
|
||||
string/sprintf/libshadow_la-stpeprintf.lo \
|
||||
string/sprintf/libshadow_la-xasprintf.lo \
|
||||
string/strchr/libshadow_la-strchrcnt.lo \
|
||||
string/strchr/libshadow_la-stpspn.lo \
|
||||
string/strchr/libshadow_la-strchrscnt.lo \
|
||||
string/strchr/libshadow_la-strnul.lo \
|
||||
string/strchr/libshadow_la-strrspn.lo \
|
||||
string/strcmp/libshadow_la-strcaseeq.lo \
|
||||
string/strcmp/libshadow_la-streq.lo \
|
||||
string/strcpy/libshadow_la-stpecpy.lo \
|
||||
string/strcpy/libshadow_la-strncat.lo \
|
||||
@@ -260,6 +275,11 @@ am_libshadow_la_OBJECTS = libshadow_la-addgrps.lo libshadow_la-adds.lo \
|
||||
string/strdup/libshadow_la-xstrdup.lo \
|
||||
string/strdup/libshadow_la-xstrndup.lo \
|
||||
string/libshadow_la-strftime.lo \
|
||||
string/strspn/libshadow_la-stpspn.lo \
|
||||
string/strspn/libshadow_la-stprcspn.lo \
|
||||
string/strspn/libshadow_la-stprspn.lo \
|
||||
string/strspn/libshadow_la-strrcspn.lo \
|
||||
string/strspn/libshadow_la-strrspn.lo \
|
||||
string/strtok/libshadow_la-stpsep.lo libshadow_la-strtoday.lo \
|
||||
libshadow_la-sub.lo libshadow_la-subordinateio.lo \
|
||||
libshadow_la-sulog.lo time/libshadow_la-day_to_str.lo \
|
||||
@@ -420,15 +440,21 @@ am__depfiles_remade = ./$(DEPDIR)/libshadow_la-addgrps.Plo \
|
||||
atoi/strtoi/$(DEPDIR)/libshadow_la-strtou_noneg.Plo \
|
||||
fs/readlink/$(DEPDIR)/libshadow_la-areadlink.Plo \
|
||||
fs/readlink/$(DEPDIR)/libshadow_la-readlinknul.Plo \
|
||||
search/cmp/$(DEPDIR)/libshadow_la-cmp.Plo \
|
||||
search/l/$(DEPDIR)/libshadow_la-lfind.Plo \
|
||||
search/l/$(DEPDIR)/libshadow_la-lsearch.Plo \
|
||||
search/sort/$(DEPDIR)/libshadow_la-qsort.Plo \
|
||||
shadow/grp/$(DEPDIR)/libshadow_la-agetgroups.Plo \
|
||||
string/$(DEPDIR)/libshadow_la-strftime.Plo \
|
||||
string/ctype/strisascii/$(DEPDIR)/libshadow_la-strisdigit.Plo \
|
||||
string/memset/$(DEPDIR)/libshadow_la-memzero.Plo \
|
||||
string/sprintf/$(DEPDIR)/libshadow_la-snprintf.Plo \
|
||||
string/sprintf/$(DEPDIR)/libshadow_la-stpeprintf.Plo \
|
||||
string/sprintf/$(DEPDIR)/libshadow_la-xasprintf.Plo \
|
||||
string/strchr/$(DEPDIR)/libshadow_la-stpspn.Plo \
|
||||
string/strchr/$(DEPDIR)/libshadow_la-strchrcnt.Plo \
|
||||
string/strchr/$(DEPDIR)/libshadow_la-strchrscnt.Plo \
|
||||
string/strchr/$(DEPDIR)/libshadow_la-strnul.Plo \
|
||||
string/strchr/$(DEPDIR)/libshadow_la-strrspn.Plo \
|
||||
string/strcmp/$(DEPDIR)/libshadow_la-strcaseeq.Plo \
|
||||
string/strcmp/$(DEPDIR)/libshadow_la-streq.Plo \
|
||||
string/strcpy/$(DEPDIR)/libshadow_la-stpecpy.Plo \
|
||||
string/strcpy/$(DEPDIR)/libshadow_la-strncat.Plo \
|
||||
@@ -437,6 +463,11 @@ am__depfiles_remade = ./$(DEPDIR)/libshadow_la-addgrps.Plo \
|
||||
string/strdup/$(DEPDIR)/libshadow_la-strndupa.Plo \
|
||||
string/strdup/$(DEPDIR)/libshadow_la-xstrdup.Plo \
|
||||
string/strdup/$(DEPDIR)/libshadow_la-xstrndup.Plo \
|
||||
string/strspn/$(DEPDIR)/libshadow_la-stprcspn.Plo \
|
||||
string/strspn/$(DEPDIR)/libshadow_la-stprspn.Plo \
|
||||
string/strspn/$(DEPDIR)/libshadow_la-stpspn.Plo \
|
||||
string/strspn/$(DEPDIR)/libshadow_la-strrcspn.Plo \
|
||||
string/strspn/$(DEPDIR)/libshadow_la-strrspn.Plo \
|
||||
string/strtok/$(DEPDIR)/libshadow_la-stpsep.Plo \
|
||||
time/$(DEPDIR)/libshadow_la-day_to_str.Plo
|
||||
am__mv = mv -f
|
||||
@@ -712,19 +743,24 @@ libshadow_la_SOURCES = addgrps.c adds.c adds.h age.c agetpass.c \
|
||||
pam_defs.h pam_pass.c pam_pass_non_interactive.c port.c port.h \
|
||||
prefix_flag.c prototypes.h pwauth.c pwauth.h pwio.c pwio.h \
|
||||
pwd_init.c pwd2spwd.c pwdcheck.c pwmem.c remove_tree.c \
|
||||
root_flag.c run_part.h run_part.c salt.c selinux.c semanage.c \
|
||||
setugid.c setupenv.c sgetgrent.c sgetpwent.c sgetspent.c \
|
||||
sgroupio.c sgroupio.h shadow.c shadowio.c shadowio.h \
|
||||
shadowlog.c shadowlog.h shadowlog_internal.h shadowmem.c \
|
||||
shell.c sizeof.h spawn.c sssd.c sssd.h string/memset/memzero.c \
|
||||
root_flag.c run_part.h run_part.c salt.c search/cmp/cmp.c \
|
||||
search/cmp/cmp.h search/l/lfind.c search/l/lfind.h \
|
||||
search/l/lsearch.c search/l/lsearch.h search/sort/qsort.c \
|
||||
search/sort/qsort.h selinux.c semanage.c setugid.c setupenv.c \
|
||||
sgetgrent.c sgetpwent.c sgetspent.c sgroupio.c sgroupio.h \
|
||||
shadow.c shadow/grp/agetgroups.c shadow/grp/agetgroups.h \
|
||||
shadowio.c shadowio.h shadowlog.c shadowlog.h \
|
||||
shadowlog_internal.h shadowmem.c shell.c sizeof.h spawn.c \
|
||||
sssd.c sssd.h string/ctype/strisascii/strisdigit.c \
|
||||
string/ctype/strisascii/strisdigit.h string/memset/memzero.c \
|
||||
string/memset/memzero.h string/sprintf/snprintf.c \
|
||||
string/sprintf/snprintf.h string/sprintf/stpeprintf.c \
|
||||
string/sprintf/stpeprintf.h string/sprintf/xasprintf.c \
|
||||
string/sprintf/xasprintf.h string/strchr/strchrcnt.c \
|
||||
string/strchr/strchrcnt.h string/strchr/stpspn.c \
|
||||
string/strchr/stpspn.h string/strchr/strnul.c \
|
||||
string/strchr/strnul.h string/strchr/strrspn.c \
|
||||
string/strchr/strrspn.h string/strcmp/streq.c \
|
||||
string/strchr/strchrcnt.h string/strchr/strchrscnt.c \
|
||||
string/strchr/strchrscnt.h string/strchr/strnul.c \
|
||||
string/strchr/strnul.h string/strcmp/strcaseeq.c \
|
||||
string/strcmp/strcaseeq.h string/strcmp/streq.c \
|
||||
string/strcmp/streq.h string/strcpy/stpecpy.c \
|
||||
string/strcpy/stpecpy.h string/strcpy/strncat.c \
|
||||
string/strcpy/strncat.h string/strcpy/strncpy.c \
|
||||
@@ -733,6 +769,11 @@ libshadow_la_SOURCES = addgrps.c adds.c adds.h age.c agetpass.c \
|
||||
string/strdup/strndupa.h string/strdup/xstrdup.c \
|
||||
string/strdup/xstrdup.h string/strdup/xstrndup.c \
|
||||
string/strdup/xstrndup.h string/strftime.c string/strftime.h \
|
||||
string/strspn/stpspn.c string/strspn/stpspn.h \
|
||||
string/strspn/stprcspn.c string/strspn/stprcspn.h \
|
||||
string/strspn/stprspn.c string/strspn/stprspn.h \
|
||||
string/strspn/strrcspn.c string/strspn/strrcspn.h \
|
||||
string/strspn/strrspn.c string/strspn/strrspn.h \
|
||||
string/strtok/stpsep.c string/strtok/stpsep.h strtoday.c sub.c \
|
||||
subordinateio.h subordinateio.c sulog.c time/day_to_str.c \
|
||||
time/day_to_str.h ttytype.c typetraits.h tz.c ulimit.c \
|
||||
@@ -883,6 +924,49 @@ fs/readlink/libshadow_la-areadlink.lo: fs/readlink/$(am__dirstamp) \
|
||||
fs/readlink/$(DEPDIR)/$(am__dirstamp)
|
||||
fs/readlink/libshadow_la-readlinknul.lo: fs/readlink/$(am__dirstamp) \
|
||||
fs/readlink/$(DEPDIR)/$(am__dirstamp)
|
||||
search/cmp/$(am__dirstamp):
|
||||
@$(MKDIR_P) search/cmp
|
||||
@: > search/cmp/$(am__dirstamp)
|
||||
search/cmp/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) search/cmp/$(DEPDIR)
|
||||
@: > search/cmp/$(DEPDIR)/$(am__dirstamp)
|
||||
search/cmp/libshadow_la-cmp.lo: search/cmp/$(am__dirstamp) \
|
||||
search/cmp/$(DEPDIR)/$(am__dirstamp)
|
||||
search/l/$(am__dirstamp):
|
||||
@$(MKDIR_P) search/l
|
||||
@: > search/l/$(am__dirstamp)
|
||||
search/l/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) search/l/$(DEPDIR)
|
||||
@: > search/l/$(DEPDIR)/$(am__dirstamp)
|
||||
search/l/libshadow_la-lfind.lo: search/l/$(am__dirstamp) \
|
||||
search/l/$(DEPDIR)/$(am__dirstamp)
|
||||
search/l/libshadow_la-lsearch.lo: search/l/$(am__dirstamp) \
|
||||
search/l/$(DEPDIR)/$(am__dirstamp)
|
||||
search/sort/$(am__dirstamp):
|
||||
@$(MKDIR_P) search/sort
|
||||
@: > search/sort/$(am__dirstamp)
|
||||
search/sort/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) search/sort/$(DEPDIR)
|
||||
@: > search/sort/$(DEPDIR)/$(am__dirstamp)
|
||||
search/sort/libshadow_la-qsort.lo: search/sort/$(am__dirstamp) \
|
||||
search/sort/$(DEPDIR)/$(am__dirstamp)
|
||||
shadow/grp/$(am__dirstamp):
|
||||
@$(MKDIR_P) shadow/grp
|
||||
@: > shadow/grp/$(am__dirstamp)
|
||||
shadow/grp/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) shadow/grp/$(DEPDIR)
|
||||
@: > shadow/grp/$(DEPDIR)/$(am__dirstamp)
|
||||
shadow/grp/libshadow_la-agetgroups.lo: shadow/grp/$(am__dirstamp) \
|
||||
shadow/grp/$(DEPDIR)/$(am__dirstamp)
|
||||
string/ctype/strisascii/$(am__dirstamp):
|
||||
@$(MKDIR_P) string/ctype/strisascii
|
||||
@: > string/ctype/strisascii/$(am__dirstamp)
|
||||
string/ctype/strisascii/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) string/ctype/strisascii/$(DEPDIR)
|
||||
@: > string/ctype/strisascii/$(DEPDIR)/$(am__dirstamp)
|
||||
string/ctype/strisascii/libshadow_la-strisdigit.lo: \
|
||||
string/ctype/strisascii/$(am__dirstamp) \
|
||||
string/ctype/strisascii/$(DEPDIR)/$(am__dirstamp)
|
||||
string/memset/$(am__dirstamp):
|
||||
@$(MKDIR_P) string/memset
|
||||
@: > string/memset/$(am__dirstamp)
|
||||
@@ -915,18 +999,20 @@ string/strchr/$(DEPDIR)/$(am__dirstamp):
|
||||
string/strchr/libshadow_la-strchrcnt.lo: \
|
||||
string/strchr/$(am__dirstamp) \
|
||||
string/strchr/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strchr/libshadow_la-stpspn.lo: string/strchr/$(am__dirstamp) \
|
||||
string/strchr/libshadow_la-strchrscnt.lo: \
|
||||
string/strchr/$(am__dirstamp) \
|
||||
string/strchr/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strchr/libshadow_la-strnul.lo: string/strchr/$(am__dirstamp) \
|
||||
string/strchr/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strchr/libshadow_la-strrspn.lo: string/strchr/$(am__dirstamp) \
|
||||
string/strchr/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strcmp/$(am__dirstamp):
|
||||
@$(MKDIR_P) string/strcmp
|
||||
@: > string/strcmp/$(am__dirstamp)
|
||||
string/strcmp/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) string/strcmp/$(DEPDIR)
|
||||
@: > string/strcmp/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strcmp/libshadow_la-strcaseeq.lo: \
|
||||
string/strcmp/$(am__dirstamp) \
|
||||
string/strcmp/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strcmp/libshadow_la-streq.lo: string/strcmp/$(am__dirstamp) \
|
||||
string/strcmp/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strcpy/$(am__dirstamp):
|
||||
@@ -963,6 +1049,22 @@ string/$(DEPDIR)/$(am__dirstamp):
|
||||
@: > string/$(DEPDIR)/$(am__dirstamp)
|
||||
string/libshadow_la-strftime.lo: string/$(am__dirstamp) \
|
||||
string/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strspn/$(am__dirstamp):
|
||||
@$(MKDIR_P) string/strspn
|
||||
@: > string/strspn/$(am__dirstamp)
|
||||
string/strspn/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) string/strspn/$(DEPDIR)
|
||||
@: > string/strspn/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strspn/libshadow_la-stpspn.lo: string/strspn/$(am__dirstamp) \
|
||||
string/strspn/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strspn/libshadow_la-stprcspn.lo: string/strspn/$(am__dirstamp) \
|
||||
string/strspn/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strspn/libshadow_la-stprspn.lo: string/strspn/$(am__dirstamp) \
|
||||
string/strspn/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strspn/libshadow_la-strrcspn.lo: string/strspn/$(am__dirstamp) \
|
||||
string/strspn/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strspn/libshadow_la-strrspn.lo: string/strspn/$(am__dirstamp) \
|
||||
string/strspn/$(DEPDIR)/$(am__dirstamp)
|
||||
string/strtok/$(am__dirstamp):
|
||||
@$(MKDIR_P) string/strtok
|
||||
@: > string/strtok/$(am__dirstamp)
|
||||
@@ -999,8 +1101,18 @@ mostlyclean-compile:
|
||||
-rm -f atoi/strtoi/*.lo
|
||||
-rm -f fs/readlink/*.$(OBJEXT)
|
||||
-rm -f fs/readlink/*.lo
|
||||
-rm -f search/cmp/*.$(OBJEXT)
|
||||
-rm -f search/cmp/*.lo
|
||||
-rm -f search/l/*.$(OBJEXT)
|
||||
-rm -f search/l/*.lo
|
||||
-rm -f search/sort/*.$(OBJEXT)
|
||||
-rm -f search/sort/*.lo
|
||||
-rm -f shadow/grp/*.$(OBJEXT)
|
||||
-rm -f shadow/grp/*.lo
|
||||
-rm -f string/*.$(OBJEXT)
|
||||
-rm -f string/*.lo
|
||||
-rm -f string/ctype/strisascii/*.$(OBJEXT)
|
||||
-rm -f string/ctype/strisascii/*.lo
|
||||
-rm -f string/memset/*.$(OBJEXT)
|
||||
-rm -f string/memset/*.lo
|
||||
-rm -f string/sprintf/*.$(OBJEXT)
|
||||
@@ -1013,6 +1125,8 @@ mostlyclean-compile:
|
||||
-rm -f string/strcpy/*.lo
|
||||
-rm -f string/strdup/*.$(OBJEXT)
|
||||
-rm -f string/strdup/*.lo
|
||||
-rm -f string/strspn/*.$(OBJEXT)
|
||||
-rm -f string/strspn/*.lo
|
||||
-rm -f string/strtok/*.$(OBJEXT)
|
||||
-rm -f string/strtok/*.lo
|
||||
-rm -f time/*.$(OBJEXT)
|
||||
@@ -1146,15 +1260,21 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@atoi/strtoi/$(DEPDIR)/libshadow_la-strtou_noneg.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@fs/readlink/$(DEPDIR)/libshadow_la-areadlink.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@fs/readlink/$(DEPDIR)/libshadow_la-readlinknul.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@search/cmp/$(DEPDIR)/libshadow_la-cmp.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@search/l/$(DEPDIR)/libshadow_la-lfind.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@search/l/$(DEPDIR)/libshadow_la-lsearch.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@search/sort/$(DEPDIR)/libshadow_la-qsort.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@shadow/grp/$(DEPDIR)/libshadow_la-agetgroups.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/$(DEPDIR)/libshadow_la-strftime.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/ctype/strisascii/$(DEPDIR)/libshadow_la-strisdigit.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/memset/$(DEPDIR)/libshadow_la-memzero.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/sprintf/$(DEPDIR)/libshadow_la-snprintf.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/sprintf/$(DEPDIR)/libshadow_la-stpeprintf.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/sprintf/$(DEPDIR)/libshadow_la-xasprintf.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strchr/$(DEPDIR)/libshadow_la-stpspn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strchr/$(DEPDIR)/libshadow_la-strchrcnt.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strchr/$(DEPDIR)/libshadow_la-strchrscnt.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strchr/$(DEPDIR)/libshadow_la-strnul.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strchr/$(DEPDIR)/libshadow_la-strrspn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strcmp/$(DEPDIR)/libshadow_la-strcaseeq.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strcmp/$(DEPDIR)/libshadow_la-streq.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strcpy/$(DEPDIR)/libshadow_la-stpecpy.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strcpy/$(DEPDIR)/libshadow_la-strncat.Plo@am__quote@ # am--include-marker
|
||||
@@ -1163,6 +1283,11 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strdup/$(DEPDIR)/libshadow_la-strndupa.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strdup/$(DEPDIR)/libshadow_la-xstrdup.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strdup/$(DEPDIR)/libshadow_la-xstrndup.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strspn/$(DEPDIR)/libshadow_la-stprcspn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strspn/$(DEPDIR)/libshadow_la-stprspn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strspn/$(DEPDIR)/libshadow_la-stpspn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strspn/$(DEPDIR)/libshadow_la-strrcspn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strspn/$(DEPDIR)/libshadow_la-strrspn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@string/strtok/$(DEPDIR)/libshadow_la-stpsep.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@time/$(DEPDIR)/libshadow_la-day_to_str.Plo@am__quote@ # am--include-marker
|
||||
|
||||
@@ -1798,6 +1923,34 @@ libshadow_la-salt.lo: salt.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o libshadow_la-salt.lo `test -f 'salt.c' || echo '$(srcdir)/'`salt.c
|
||||
|
||||
search/cmp/libshadow_la-cmp.lo: search/cmp/cmp.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT search/cmp/libshadow_la-cmp.lo -MD -MP -MF search/cmp/$(DEPDIR)/libshadow_la-cmp.Tpo -c -o search/cmp/libshadow_la-cmp.lo `test -f 'search/cmp/cmp.c' || echo '$(srcdir)/'`search/cmp/cmp.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) search/cmp/$(DEPDIR)/libshadow_la-cmp.Tpo search/cmp/$(DEPDIR)/libshadow_la-cmp.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='search/cmp/cmp.c' object='search/cmp/libshadow_la-cmp.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o search/cmp/libshadow_la-cmp.lo `test -f 'search/cmp/cmp.c' || echo '$(srcdir)/'`search/cmp/cmp.c
|
||||
|
||||
search/l/libshadow_la-lfind.lo: search/l/lfind.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT search/l/libshadow_la-lfind.lo -MD -MP -MF search/l/$(DEPDIR)/libshadow_la-lfind.Tpo -c -o search/l/libshadow_la-lfind.lo `test -f 'search/l/lfind.c' || echo '$(srcdir)/'`search/l/lfind.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) search/l/$(DEPDIR)/libshadow_la-lfind.Tpo search/l/$(DEPDIR)/libshadow_la-lfind.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='search/l/lfind.c' object='search/l/libshadow_la-lfind.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o search/l/libshadow_la-lfind.lo `test -f 'search/l/lfind.c' || echo '$(srcdir)/'`search/l/lfind.c
|
||||
|
||||
search/l/libshadow_la-lsearch.lo: search/l/lsearch.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT search/l/libshadow_la-lsearch.lo -MD -MP -MF search/l/$(DEPDIR)/libshadow_la-lsearch.Tpo -c -o search/l/libshadow_la-lsearch.lo `test -f 'search/l/lsearch.c' || echo '$(srcdir)/'`search/l/lsearch.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) search/l/$(DEPDIR)/libshadow_la-lsearch.Tpo search/l/$(DEPDIR)/libshadow_la-lsearch.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='search/l/lsearch.c' object='search/l/libshadow_la-lsearch.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o search/l/libshadow_la-lsearch.lo `test -f 'search/l/lsearch.c' || echo '$(srcdir)/'`search/l/lsearch.c
|
||||
|
||||
search/sort/libshadow_la-qsort.lo: search/sort/qsort.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT search/sort/libshadow_la-qsort.lo -MD -MP -MF search/sort/$(DEPDIR)/libshadow_la-qsort.Tpo -c -o search/sort/libshadow_la-qsort.lo `test -f 'search/sort/qsort.c' || echo '$(srcdir)/'`search/sort/qsort.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) search/sort/$(DEPDIR)/libshadow_la-qsort.Tpo search/sort/$(DEPDIR)/libshadow_la-qsort.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='search/sort/qsort.c' object='search/sort/libshadow_la-qsort.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o search/sort/libshadow_la-qsort.lo `test -f 'search/sort/qsort.c' || echo '$(srcdir)/'`search/sort/qsort.c
|
||||
|
||||
libshadow_la-selinux.lo: selinux.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT libshadow_la-selinux.lo -MD -MP -MF $(DEPDIR)/libshadow_la-selinux.Tpo -c -o libshadow_la-selinux.lo `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libshadow_la-selinux.Tpo $(DEPDIR)/libshadow_la-selinux.Plo
|
||||
@@ -1861,6 +2014,13 @@ libshadow_la-shadow.lo: shadow.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o libshadow_la-shadow.lo `test -f 'shadow.c' || echo '$(srcdir)/'`shadow.c
|
||||
|
||||
shadow/grp/libshadow_la-agetgroups.lo: shadow/grp/agetgroups.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT shadow/grp/libshadow_la-agetgroups.lo -MD -MP -MF shadow/grp/$(DEPDIR)/libshadow_la-agetgroups.Tpo -c -o shadow/grp/libshadow_la-agetgroups.lo `test -f 'shadow/grp/agetgroups.c' || echo '$(srcdir)/'`shadow/grp/agetgroups.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shadow/grp/$(DEPDIR)/libshadow_la-agetgroups.Tpo shadow/grp/$(DEPDIR)/libshadow_la-agetgroups.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shadow/grp/agetgroups.c' object='shadow/grp/libshadow_la-agetgroups.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o shadow/grp/libshadow_la-agetgroups.lo `test -f 'shadow/grp/agetgroups.c' || echo '$(srcdir)/'`shadow/grp/agetgroups.c
|
||||
|
||||
libshadow_la-shadowio.lo: shadowio.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT libshadow_la-shadowio.lo -MD -MP -MF $(DEPDIR)/libshadow_la-shadowio.Tpo -c -o libshadow_la-shadowio.lo `test -f 'shadowio.c' || echo '$(srcdir)/'`shadowio.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libshadow_la-shadowio.Tpo $(DEPDIR)/libshadow_la-shadowio.Plo
|
||||
@@ -1903,6 +2063,13 @@ libshadow_la-sssd.lo: sssd.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o libshadow_la-sssd.lo `test -f 'sssd.c' || echo '$(srcdir)/'`sssd.c
|
||||
|
||||
string/ctype/strisascii/libshadow_la-strisdigit.lo: string/ctype/strisascii/strisdigit.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/ctype/strisascii/libshadow_la-strisdigit.lo -MD -MP -MF string/ctype/strisascii/$(DEPDIR)/libshadow_la-strisdigit.Tpo -c -o string/ctype/strisascii/libshadow_la-strisdigit.lo `test -f 'string/ctype/strisascii/strisdigit.c' || echo '$(srcdir)/'`string/ctype/strisascii/strisdigit.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/ctype/strisascii/$(DEPDIR)/libshadow_la-strisdigit.Tpo string/ctype/strisascii/$(DEPDIR)/libshadow_la-strisdigit.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/ctype/strisascii/strisdigit.c' object='string/ctype/strisascii/libshadow_la-strisdigit.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/ctype/strisascii/libshadow_la-strisdigit.lo `test -f 'string/ctype/strisascii/strisdigit.c' || echo '$(srcdir)/'`string/ctype/strisascii/strisdigit.c
|
||||
|
||||
string/memset/libshadow_la-memzero.lo: string/memset/memzero.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/memset/libshadow_la-memzero.lo -MD -MP -MF string/memset/$(DEPDIR)/libshadow_la-memzero.Tpo -c -o string/memset/libshadow_la-memzero.lo `test -f 'string/memset/memzero.c' || echo '$(srcdir)/'`string/memset/memzero.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/memset/$(DEPDIR)/libshadow_la-memzero.Tpo string/memset/$(DEPDIR)/libshadow_la-memzero.Plo
|
||||
@@ -1938,12 +2105,12 @@ string/strchr/libshadow_la-strchrcnt.lo: string/strchr/strchrcnt.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strchr/libshadow_la-strchrcnt.lo `test -f 'string/strchr/strchrcnt.c' || echo '$(srcdir)/'`string/strchr/strchrcnt.c
|
||||
|
||||
string/strchr/libshadow_la-stpspn.lo: string/strchr/stpspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strchr/libshadow_la-stpspn.lo -MD -MP -MF string/strchr/$(DEPDIR)/libshadow_la-stpspn.Tpo -c -o string/strchr/libshadow_la-stpspn.lo `test -f 'string/strchr/stpspn.c' || echo '$(srcdir)/'`string/strchr/stpspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strchr/$(DEPDIR)/libshadow_la-stpspn.Tpo string/strchr/$(DEPDIR)/libshadow_la-stpspn.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strchr/stpspn.c' object='string/strchr/libshadow_la-stpspn.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
string/strchr/libshadow_la-strchrscnt.lo: string/strchr/strchrscnt.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strchr/libshadow_la-strchrscnt.lo -MD -MP -MF string/strchr/$(DEPDIR)/libshadow_la-strchrscnt.Tpo -c -o string/strchr/libshadow_la-strchrscnt.lo `test -f 'string/strchr/strchrscnt.c' || echo '$(srcdir)/'`string/strchr/strchrscnt.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strchr/$(DEPDIR)/libshadow_la-strchrscnt.Tpo string/strchr/$(DEPDIR)/libshadow_la-strchrscnt.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strchr/strchrscnt.c' object='string/strchr/libshadow_la-strchrscnt.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strchr/libshadow_la-stpspn.lo `test -f 'string/strchr/stpspn.c' || echo '$(srcdir)/'`string/strchr/stpspn.c
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strchr/libshadow_la-strchrscnt.lo `test -f 'string/strchr/strchrscnt.c' || echo '$(srcdir)/'`string/strchr/strchrscnt.c
|
||||
|
||||
string/strchr/libshadow_la-strnul.lo: string/strchr/strnul.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strchr/libshadow_la-strnul.lo -MD -MP -MF string/strchr/$(DEPDIR)/libshadow_la-strnul.Tpo -c -o string/strchr/libshadow_la-strnul.lo `test -f 'string/strchr/strnul.c' || echo '$(srcdir)/'`string/strchr/strnul.c
|
||||
@@ -1952,12 +2119,12 @@ string/strchr/libshadow_la-strnul.lo: string/strchr/strnul.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strchr/libshadow_la-strnul.lo `test -f 'string/strchr/strnul.c' || echo '$(srcdir)/'`string/strchr/strnul.c
|
||||
|
||||
string/strchr/libshadow_la-strrspn.lo: string/strchr/strrspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strchr/libshadow_la-strrspn.lo -MD -MP -MF string/strchr/$(DEPDIR)/libshadow_la-strrspn.Tpo -c -o string/strchr/libshadow_la-strrspn.lo `test -f 'string/strchr/strrspn.c' || echo '$(srcdir)/'`string/strchr/strrspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strchr/$(DEPDIR)/libshadow_la-strrspn.Tpo string/strchr/$(DEPDIR)/libshadow_la-strrspn.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strchr/strrspn.c' object='string/strchr/libshadow_la-strrspn.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
string/strcmp/libshadow_la-strcaseeq.lo: string/strcmp/strcaseeq.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strcmp/libshadow_la-strcaseeq.lo -MD -MP -MF string/strcmp/$(DEPDIR)/libshadow_la-strcaseeq.Tpo -c -o string/strcmp/libshadow_la-strcaseeq.lo `test -f 'string/strcmp/strcaseeq.c' || echo '$(srcdir)/'`string/strcmp/strcaseeq.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strcmp/$(DEPDIR)/libshadow_la-strcaseeq.Tpo string/strcmp/$(DEPDIR)/libshadow_la-strcaseeq.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strcmp/strcaseeq.c' object='string/strcmp/libshadow_la-strcaseeq.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strchr/libshadow_la-strrspn.lo `test -f 'string/strchr/strrspn.c' || echo '$(srcdir)/'`string/strchr/strrspn.c
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strcmp/libshadow_la-strcaseeq.lo `test -f 'string/strcmp/strcaseeq.c' || echo '$(srcdir)/'`string/strcmp/strcaseeq.c
|
||||
|
||||
string/strcmp/libshadow_la-streq.lo: string/strcmp/streq.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strcmp/libshadow_la-streq.lo -MD -MP -MF string/strcmp/$(DEPDIR)/libshadow_la-streq.Tpo -c -o string/strcmp/libshadow_la-streq.lo `test -f 'string/strcmp/streq.c' || echo '$(srcdir)/'`string/strcmp/streq.c
|
||||
@@ -2022,6 +2189,41 @@ string/libshadow_la-strftime.lo: string/strftime.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/libshadow_la-strftime.lo `test -f 'string/strftime.c' || echo '$(srcdir)/'`string/strftime.c
|
||||
|
||||
string/strspn/libshadow_la-stpspn.lo: string/strspn/stpspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strspn/libshadow_la-stpspn.lo -MD -MP -MF string/strspn/$(DEPDIR)/libshadow_la-stpspn.Tpo -c -o string/strspn/libshadow_la-stpspn.lo `test -f 'string/strspn/stpspn.c' || echo '$(srcdir)/'`string/strspn/stpspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strspn/$(DEPDIR)/libshadow_la-stpspn.Tpo string/strspn/$(DEPDIR)/libshadow_la-stpspn.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strspn/stpspn.c' object='string/strspn/libshadow_la-stpspn.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strspn/libshadow_la-stpspn.lo `test -f 'string/strspn/stpspn.c' || echo '$(srcdir)/'`string/strspn/stpspn.c
|
||||
|
||||
string/strspn/libshadow_la-stprcspn.lo: string/strspn/stprcspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strspn/libshadow_la-stprcspn.lo -MD -MP -MF string/strspn/$(DEPDIR)/libshadow_la-stprcspn.Tpo -c -o string/strspn/libshadow_la-stprcspn.lo `test -f 'string/strspn/stprcspn.c' || echo '$(srcdir)/'`string/strspn/stprcspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strspn/$(DEPDIR)/libshadow_la-stprcspn.Tpo string/strspn/$(DEPDIR)/libshadow_la-stprcspn.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strspn/stprcspn.c' object='string/strspn/libshadow_la-stprcspn.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strspn/libshadow_la-stprcspn.lo `test -f 'string/strspn/stprcspn.c' || echo '$(srcdir)/'`string/strspn/stprcspn.c
|
||||
|
||||
string/strspn/libshadow_la-stprspn.lo: string/strspn/stprspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strspn/libshadow_la-stprspn.lo -MD -MP -MF string/strspn/$(DEPDIR)/libshadow_la-stprspn.Tpo -c -o string/strspn/libshadow_la-stprspn.lo `test -f 'string/strspn/stprspn.c' || echo '$(srcdir)/'`string/strspn/stprspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strspn/$(DEPDIR)/libshadow_la-stprspn.Tpo string/strspn/$(DEPDIR)/libshadow_la-stprspn.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strspn/stprspn.c' object='string/strspn/libshadow_la-stprspn.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strspn/libshadow_la-stprspn.lo `test -f 'string/strspn/stprspn.c' || echo '$(srcdir)/'`string/strspn/stprspn.c
|
||||
|
||||
string/strspn/libshadow_la-strrcspn.lo: string/strspn/strrcspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strspn/libshadow_la-strrcspn.lo -MD -MP -MF string/strspn/$(DEPDIR)/libshadow_la-strrcspn.Tpo -c -o string/strspn/libshadow_la-strrcspn.lo `test -f 'string/strspn/strrcspn.c' || echo '$(srcdir)/'`string/strspn/strrcspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strspn/$(DEPDIR)/libshadow_la-strrcspn.Tpo string/strspn/$(DEPDIR)/libshadow_la-strrcspn.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strspn/strrcspn.c' object='string/strspn/libshadow_la-strrcspn.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strspn/libshadow_la-strrcspn.lo `test -f 'string/strspn/strrcspn.c' || echo '$(srcdir)/'`string/strspn/strrcspn.c
|
||||
|
||||
string/strspn/libshadow_la-strrspn.lo: string/strspn/strrspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strspn/libshadow_la-strrspn.lo -MD -MP -MF string/strspn/$(DEPDIR)/libshadow_la-strrspn.Tpo -c -o string/strspn/libshadow_la-strrspn.lo `test -f 'string/strspn/strrspn.c' || echo '$(srcdir)/'`string/strspn/strrspn.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strspn/$(DEPDIR)/libshadow_la-strrspn.Tpo string/strspn/$(DEPDIR)/libshadow_la-strrspn.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='string/strspn/strrspn.c' object='string/strspn/libshadow_la-strrspn.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o string/strspn/libshadow_la-strrspn.lo `test -f 'string/strspn/strrspn.c' || echo '$(srcdir)/'`string/strspn/strrspn.c
|
||||
|
||||
string/strtok/libshadow_la-stpsep.lo: string/strtok/stpsep.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT string/strtok/libshadow_la-stpsep.lo -MD -MP -MF string/strtok/$(DEPDIR)/libshadow_la-stpsep.Tpo -c -o string/strtok/libshadow_la-stpsep.lo `test -f 'string/strtok/stpsep.c' || echo '$(srcdir)/'`string/strtok/stpsep.c
|
||||
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) string/strtok/$(DEPDIR)/libshadow_la-stpsep.Tpo string/strtok/$(DEPDIR)/libshadow_la-stpsep.Plo
|
||||
@@ -2219,13 +2421,19 @@ clean-libtool:
|
||||
-rm -rf atoi/str2i/.libs atoi/str2i/_libs
|
||||
-rm -rf atoi/strtoi/.libs atoi/strtoi/_libs
|
||||
-rm -rf fs/readlink/.libs fs/readlink/_libs
|
||||
-rm -rf search/cmp/.libs search/cmp/_libs
|
||||
-rm -rf search/l/.libs search/l/_libs
|
||||
-rm -rf search/sort/.libs search/sort/_libs
|
||||
-rm -rf shadow/grp/.libs shadow/grp/_libs
|
||||
-rm -rf string/.libs string/_libs
|
||||
-rm -rf string/ctype/strisascii/.libs string/ctype/strisascii/_libs
|
||||
-rm -rf string/memset/.libs string/memset/_libs
|
||||
-rm -rf string/sprintf/.libs string/sprintf/_libs
|
||||
-rm -rf string/strchr/.libs string/strchr/_libs
|
||||
-rm -rf string/strcmp/.libs string/strcmp/_libs
|
||||
-rm -rf string/strcpy/.libs string/strcpy/_libs
|
||||
-rm -rf string/strdup/.libs string/strdup/_libs
|
||||
-rm -rf string/strspn/.libs string/strspn/_libs
|
||||
-rm -rf string/strtok/.libs string/strtok/_libs
|
||||
-rm -rf time/.libs time/_libs
|
||||
|
||||
@@ -2357,8 +2565,18 @@ distclean-generic:
|
||||
-rm -f atoi/strtoi/$(am__dirstamp)
|
||||
-rm -f fs/readlink/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f fs/readlink/$(am__dirstamp)
|
||||
-rm -f search/cmp/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f search/cmp/$(am__dirstamp)
|
||||
-rm -f search/l/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f search/l/$(am__dirstamp)
|
||||
-rm -f search/sort/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f search/sort/$(am__dirstamp)
|
||||
-rm -f shadow/grp/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f shadow/grp/$(am__dirstamp)
|
||||
-rm -f string/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f string/$(am__dirstamp)
|
||||
-rm -f string/ctype/strisascii/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f string/ctype/strisascii/$(am__dirstamp)
|
||||
-rm -f string/memset/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f string/memset/$(am__dirstamp)
|
||||
-rm -f string/sprintf/$(DEPDIR)/$(am__dirstamp)
|
||||
@@ -2371,6 +2589,8 @@ distclean-generic:
|
||||
-rm -f string/strcpy/$(am__dirstamp)
|
||||
-rm -f string/strdup/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f string/strdup/$(am__dirstamp)
|
||||
-rm -f string/strspn/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f string/strspn/$(am__dirstamp)
|
||||
-rm -f string/strtok/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f string/strtok/$(am__dirstamp)
|
||||
-rm -f time/$(DEPDIR)/$(am__dirstamp)
|
||||
@@ -2511,15 +2731,21 @@ distclean: distclean-am
|
||||
-rm -f atoi/strtoi/$(DEPDIR)/libshadow_la-strtou_noneg.Plo
|
||||
-rm -f fs/readlink/$(DEPDIR)/libshadow_la-areadlink.Plo
|
||||
-rm -f fs/readlink/$(DEPDIR)/libshadow_la-readlinknul.Plo
|
||||
-rm -f search/cmp/$(DEPDIR)/libshadow_la-cmp.Plo
|
||||
-rm -f search/l/$(DEPDIR)/libshadow_la-lfind.Plo
|
||||
-rm -f search/l/$(DEPDIR)/libshadow_la-lsearch.Plo
|
||||
-rm -f search/sort/$(DEPDIR)/libshadow_la-qsort.Plo
|
||||
-rm -f shadow/grp/$(DEPDIR)/libshadow_la-agetgroups.Plo
|
||||
-rm -f string/$(DEPDIR)/libshadow_la-strftime.Plo
|
||||
-rm -f string/ctype/strisascii/$(DEPDIR)/libshadow_la-strisdigit.Plo
|
||||
-rm -f string/memset/$(DEPDIR)/libshadow_la-memzero.Plo
|
||||
-rm -f string/sprintf/$(DEPDIR)/libshadow_la-snprintf.Plo
|
||||
-rm -f string/sprintf/$(DEPDIR)/libshadow_la-stpeprintf.Plo
|
||||
-rm -f string/sprintf/$(DEPDIR)/libshadow_la-xasprintf.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-stpspn.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-strchrcnt.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-strchrscnt.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-strnul.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-strrspn.Plo
|
||||
-rm -f string/strcmp/$(DEPDIR)/libshadow_la-strcaseeq.Plo
|
||||
-rm -f string/strcmp/$(DEPDIR)/libshadow_la-streq.Plo
|
||||
-rm -f string/strcpy/$(DEPDIR)/libshadow_la-stpecpy.Plo
|
||||
-rm -f string/strcpy/$(DEPDIR)/libshadow_la-strncat.Plo
|
||||
@@ -2528,6 +2754,11 @@ distclean: distclean-am
|
||||
-rm -f string/strdup/$(DEPDIR)/libshadow_la-strndupa.Plo
|
||||
-rm -f string/strdup/$(DEPDIR)/libshadow_la-xstrdup.Plo
|
||||
-rm -f string/strdup/$(DEPDIR)/libshadow_la-xstrndup.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-stprcspn.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-stprspn.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-stpspn.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-strrcspn.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-strrspn.Plo
|
||||
-rm -f string/strtok/$(DEPDIR)/libshadow_la-stpsep.Plo
|
||||
-rm -f time/$(DEPDIR)/libshadow_la-day_to_str.Plo
|
||||
-rm -f Makefile
|
||||
@@ -2700,15 +2931,21 @@ maintainer-clean: maintainer-clean-am
|
||||
-rm -f atoi/strtoi/$(DEPDIR)/libshadow_la-strtou_noneg.Plo
|
||||
-rm -f fs/readlink/$(DEPDIR)/libshadow_la-areadlink.Plo
|
||||
-rm -f fs/readlink/$(DEPDIR)/libshadow_la-readlinknul.Plo
|
||||
-rm -f search/cmp/$(DEPDIR)/libshadow_la-cmp.Plo
|
||||
-rm -f search/l/$(DEPDIR)/libshadow_la-lfind.Plo
|
||||
-rm -f search/l/$(DEPDIR)/libshadow_la-lsearch.Plo
|
||||
-rm -f search/sort/$(DEPDIR)/libshadow_la-qsort.Plo
|
||||
-rm -f shadow/grp/$(DEPDIR)/libshadow_la-agetgroups.Plo
|
||||
-rm -f string/$(DEPDIR)/libshadow_la-strftime.Plo
|
||||
-rm -f string/ctype/strisascii/$(DEPDIR)/libshadow_la-strisdigit.Plo
|
||||
-rm -f string/memset/$(DEPDIR)/libshadow_la-memzero.Plo
|
||||
-rm -f string/sprintf/$(DEPDIR)/libshadow_la-snprintf.Plo
|
||||
-rm -f string/sprintf/$(DEPDIR)/libshadow_la-stpeprintf.Plo
|
||||
-rm -f string/sprintf/$(DEPDIR)/libshadow_la-xasprintf.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-stpspn.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-strchrcnt.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-strchrscnt.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-strnul.Plo
|
||||
-rm -f string/strchr/$(DEPDIR)/libshadow_la-strrspn.Plo
|
||||
-rm -f string/strcmp/$(DEPDIR)/libshadow_la-strcaseeq.Plo
|
||||
-rm -f string/strcmp/$(DEPDIR)/libshadow_la-streq.Plo
|
||||
-rm -f string/strcpy/$(DEPDIR)/libshadow_la-stpecpy.Plo
|
||||
-rm -f string/strcpy/$(DEPDIR)/libshadow_la-strncat.Plo
|
||||
@@ -2717,6 +2954,11 @@ maintainer-clean: maintainer-clean-am
|
||||
-rm -f string/strdup/$(DEPDIR)/libshadow_la-strndupa.Plo
|
||||
-rm -f string/strdup/$(DEPDIR)/libshadow_la-xstrdup.Plo
|
||||
-rm -f string/strdup/$(DEPDIR)/libshadow_la-xstrndup.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-stprcspn.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-stprspn.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-stpspn.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-strrcspn.Plo
|
||||
-rm -f string/strspn/$(DEPDIR)/libshadow_la-strrspn.Plo
|
||||
-rm -f string/strtok/$(DEPDIR)/libshadow_la-stpsep.Plo
|
||||
-rm -f time/$(DEPDIR)/libshadow_la-day_to_str.Plo
|
||||
-rm -f Makefile
|
||||
|
||||
111
lib/addgrps.c
111
lib/addgrps.c
@@ -1,15 +1,14 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 1989 - 1994, Julianne Frances Haugh
|
||||
* SPDX-FileCopyrightText: 1996 - 1998, Marek Michałkiewicz
|
||||
* SPDX-FileCopyrightText: 2001 - 2006, Tomasz Kłoczko
|
||||
* SPDX-FileCopyrightText: 2007 - 2009, Nicolas François
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
// SPDX-FileCopyrightText: 1989-1994, Julianne Frances Haugh
|
||||
// SPDX-FileCopyrightText: 1996-1998, Marek Michałkiewicz
|
||||
// SPDX-FileCopyrightText: 2001-2006, Tomasz Kłoczko
|
||||
// SPDX-FileCopyrightText: 2007-2009, Nicolas François
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#if defined (HAVE_SETGROUPS) && ! defined (USE_PAM)
|
||||
#if !defined(USE_PAM)
|
||||
|
||||
#include "prototypes.h"
|
||||
#include "defines.h"
|
||||
@@ -18,12 +17,14 @@
|
||||
#include <grp.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "alloc/malloc.h"
|
||||
#include "alloc/reallocf.h"
|
||||
#include "search/l/lsearch.h"
|
||||
#include "shadow/grp/agetgroups.h"
|
||||
#include "shadowlog.h"
|
||||
#include "string/strchr/strchrscnt.h"
|
||||
|
||||
#ident "$Id$"
|
||||
|
||||
/*
|
||||
* Add groups with names from LIST (separated by commas or colons)
|
||||
@@ -33,48 +34,25 @@
|
||||
int
|
||||
add_groups(const char *list)
|
||||
{
|
||||
GETGROUPS_T *grouplist;
|
||||
size_t i;
|
||||
int ngroups;
|
||||
bool added;
|
||||
char *g, *p;
|
||||
char buf[1024];
|
||||
int ret;
|
||||
char *g, *p, *dup;
|
||||
FILE *shadow_logfd = log_get_logfd();
|
||||
gid_t *gids;
|
||||
size_t n;
|
||||
|
||||
if (strlen (list) >= sizeof (buf)) {
|
||||
errno = EINVAL;
|
||||
gids = agetgroups(&n);
|
||||
if (gids == NULL)
|
||||
return -1;
|
||||
}
|
||||
strcpy (buf, list);
|
||||
|
||||
i = 16;
|
||||
for (;;) {
|
||||
grouplist = MALLOC(i, GETGROUPS_T);
|
||||
if (NULL == grouplist) {
|
||||
return -1;
|
||||
}
|
||||
ngroups = getgroups (i, grouplist);
|
||||
if ( ( (-1 == ngroups)
|
||||
&& (EINVAL != errno))
|
||||
|| (i > (size_t)ngroups)) {
|
||||
/* Unexpected failure of getgroups or successful
|
||||
* reception of the groups */
|
||||
break;
|
||||
}
|
||||
/* not enough room, so try allocating a larger buffer */
|
||||
free (grouplist);
|
||||
i *= 2;
|
||||
}
|
||||
if (ngroups < 0) {
|
||||
free (grouplist);
|
||||
gids = REALLOCF(gids, n + strchrscnt(list, ",:") + 1, gid_t);
|
||||
if (gids == NULL)
|
||||
return -1;
|
||||
}
|
||||
|
||||
added = false;
|
||||
p = buf;
|
||||
p = dup = strdup(list);
|
||||
if (dup == NULL)
|
||||
goto free_gids;
|
||||
|
||||
while (NULL != (g = strsep(&p, ",:"))) {
|
||||
struct group *grp;
|
||||
struct group *grp;
|
||||
|
||||
grp = getgrnam(g); /* local, no need for xgetgrnam */
|
||||
if (NULL == grp) {
|
||||
@@ -82,35 +60,22 @@ add_groups(const char *list)
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < (size_t)ngroups && grouplist[i] != grp->gr_gid; i++);
|
||||
LSEARCH(&grp->gr_gid, gids, &n);
|
||||
}
|
||||
free(dup);
|
||||
|
||||
if (i < (size_t)ngroups) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ngroups >= sysconf (_SC_NGROUPS_MAX)) {
|
||||
fputs (_("Warning: too many groups\n"), shadow_logfd);
|
||||
break;
|
||||
}
|
||||
grouplist = REALLOCF(grouplist, (size_t) ngroups + 1, GETGROUPS_T);
|
||||
if (grouplist == NULL) {
|
||||
return -1;
|
||||
}
|
||||
grouplist[ngroups] = grp->gr_gid;
|
||||
ngroups++;
|
||||
added = true;
|
||||
if (setgroups(n, gids) == -1) {
|
||||
fprintf(shadow_logfd, "setgroups: %s\n", strerror(errno));
|
||||
goto free_gids;
|
||||
}
|
||||
|
||||
if (added) {
|
||||
ret = setgroups (ngroups, grouplist);
|
||||
free (grouplist);
|
||||
return ret;
|
||||
}
|
||||
|
||||
free (grouplist);
|
||||
free(gids);
|
||||
return 0;
|
||||
}
|
||||
#else /* HAVE_SETGROUPS && !USE_PAM */
|
||||
extern int ISO_C_forbids_an_empty_translation_unit;
|
||||
#endif /* HAVE_SETGROUPS && !USE_PAM */
|
||||
|
||||
free_gids:
|
||||
free(gids);
|
||||
return -1;
|
||||
}
|
||||
#else /* !USE_PAM */
|
||||
extern int ISO_C_forbids_an_empty_translation_unit;
|
||||
#endif /* !USE_PAM */
|
||||
|
||||
@@ -11,5 +11,3 @@
|
||||
|
||||
extern inline long addsl2(long a, long b);
|
||||
extern inline long addslN(size_t n, long addend[n]);
|
||||
|
||||
extern inline int cmpl(const void *p1, const void *p2);
|
||||
|
||||
22
lib/adds.h
22
lib/adds.h
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2023, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "search/sort/qsort.h"
|
||||
#include "sizeof.h"
|
||||
|
||||
|
||||
@@ -27,8 +27,6 @@
|
||||
inline long addsl2(long a, long b);
|
||||
inline long addslN(size_t n, long addend[n]);
|
||||
|
||||
inline int cmpl(const void *p1, const void *p2);
|
||||
|
||||
|
||||
inline long
|
||||
addsl2(long a, long b)
|
||||
@@ -57,7 +55,7 @@ addslN(size_t n, long addend[n])
|
||||
|
||||
e = errno;
|
||||
while (n > 1) {
|
||||
qsort(addend, n, sizeof(addend[0]), cmpl);
|
||||
QSORT(addend, n);
|
||||
|
||||
errno = 0;
|
||||
addend[0] = addsl2(addend[0], addend[--n]);
|
||||
@@ -69,18 +67,4 @@ addslN(size_t n, long addend[n])
|
||||
}
|
||||
|
||||
|
||||
inline int
|
||||
cmpl(const void *p1, const void *p2)
|
||||
{
|
||||
const long *l1 = p1;
|
||||
const long *l2 = p2;
|
||||
|
||||
if (*l1 < *l2)
|
||||
return -1;
|
||||
if (*l1 > *l2)
|
||||
return +1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
|
||||
@@ -106,7 +106,7 @@ int expire (const struct passwd *pw, /*@null@*/const struct spwd *sp)
|
||||
* passwd to work just like it would had they executed
|
||||
* it from the command line while logged in.
|
||||
*/
|
||||
#if defined(HAVE_INITGROUPS) && ! defined(USE_PAM)
|
||||
#if !defined(USE_PAM)
|
||||
if (setup_uid_gid (pw, false) != 0)
|
||||
#else
|
||||
if (setup_uid_gid (pw) != 0)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "config.h"
|
||||
|
||||
|
||||
#if defined(__GNUC__)
|
||||
#if (__GNUC__ >= 10)
|
||||
# define MAYBE_UNUSED [[gnu::unused]]
|
||||
# define NORETURN [[gnu::__noreturn__]]
|
||||
# define format_attr(type, fmt, va) [[gnu::format(type, fmt, va)]]
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 1990 - 1994, Julianne Frances Haugh
|
||||
* SPDX-FileCopyrightText: 1996 - 1997, Marek Michałkiewicz
|
||||
* SPDX-FileCopyrightText: 2003 - 2005, Tomasz Kłoczko
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
// SPDX-FileCopyrightText: 1990-1994, Julianne Frances Haugh
|
||||
// SPDX-FileCopyrightText: 1996-1997, Marek Michałkiewicz
|
||||
// SPDX-FileCopyrightText: 2003-2005, Tomasz Kłoczko
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
/*
|
||||
* basename.c - not worth copyrighting :-). Some versions of Linux libc
|
||||
@@ -15,17 +13,19 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ident "$Id$"
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "defines.h"
|
||||
#include "prototypes.h"
|
||||
/*@observer@*/const char *Basename (const char *str)
|
||||
#include "string/strspn/stprcspn.h"
|
||||
|
||||
|
||||
/*@observer@*/const char *
|
||||
Basename(const char *str)
|
||||
{
|
||||
if (str == NULL) {
|
||||
abort ();
|
||||
}
|
||||
|
||||
char *cp = strrchr (str, '/');
|
||||
|
||||
return (NULL != cp) ? cp + 1 : str;
|
||||
return stprcspn(str, "/");
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// SPDX-FileCopyrightText: 1996-2000, Marek Michałkiewicz
|
||||
// SPDX-FileCopyrightText: 2001-2005, Tomasz Kłoczko
|
||||
// SPDX-FileCopyrightText: 2005-2008, Nicolas François
|
||||
// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-FileCopyrightText: 2023-2025, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
@@ -27,15 +27,19 @@
|
||||
#include <limits.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/param.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "defines.h"
|
||||
#include "chkname.h"
|
||||
#include "string/ctype/strisascii/strisdigit.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
|
||||
|
||||
#ifndef LOGIN_NAME_MAX
|
||||
# define LOGIN_NAME_MAX 256
|
||||
#endif
|
||||
|
||||
|
||||
int allow_bad_names = false;
|
||||
|
||||
|
||||
@@ -44,12 +48,11 @@ login_name_max_size(void)
|
||||
{
|
||||
long conf;
|
||||
|
||||
errno = 0;
|
||||
conf = sysconf(_SC_LOGIN_NAME_MAX);
|
||||
if (conf == -1 && errno != 0)
|
||||
if (conf == -1)
|
||||
return LOGIN_NAME_MAX;
|
||||
|
||||
return MIN(conf, PTRDIFF_MAX);
|
||||
return conf;
|
||||
}
|
||||
|
||||
|
||||
@@ -69,11 +72,15 @@ is_valid_name(const char *name)
|
||||
*
|
||||
* Also do not allow fully numeric names or just "." or "..".
|
||||
*/
|
||||
int numeric;
|
||||
|
||||
if ('\0' == *name ||
|
||||
('.' == *name && (('.' == name[1] && '\0' == name[2]) ||
|
||||
'\0' == name[1])) ||
|
||||
if (strisdigit(name)) {
|
||||
errno = EINVAL;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (streq(name, "") ||
|
||||
streq(name, ".") ||
|
||||
streq(name, "..") ||
|
||||
!((*name >= 'a' && *name <= 'z') ||
|
||||
(*name >= 'A' && *name <= 'Z') ||
|
||||
(*name >= '0' && *name <= '9') ||
|
||||
@@ -84,8 +91,6 @@ is_valid_name(const char *name)
|
||||
return false;
|
||||
}
|
||||
|
||||
numeric = isdigit(*name);
|
||||
|
||||
while (!streq(++name, "")) {
|
||||
if (!((*name >= 'a' && *name <= 'z') ||
|
||||
(*name >= 'A' && *name <= 'Z') ||
|
||||
@@ -93,18 +98,12 @@ is_valid_name(const char *name)
|
||||
*name == '_' ||
|
||||
*name == '.' ||
|
||||
*name == '-' ||
|
||||
(*name == '$' && name[1] == '\0')
|
||||
streq(name, "$")
|
||||
))
|
||||
{
|
||||
errno = EINVAL;
|
||||
return false;
|
||||
}
|
||||
numeric &= isdigit(*name);
|
||||
}
|
||||
|
||||
if (numeric) {
|
||||
errno = EINVAL;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -891,7 +891,7 @@ static int write_all (const struct commonio_db *db)
|
||||
|
||||
int commonio_close (struct commonio_db *db)
|
||||
{
|
||||
int errors = 0;
|
||||
bool errors = false;
|
||||
char buf[1024];
|
||||
struct stat sb;
|
||||
|
||||
@@ -932,25 +932,25 @@ int commonio_close (struct commonio_db *db)
|
||||
|
||||
#ifdef WITH_SELINUX
|
||||
if (set_selinux_file_context (db->filename, S_IFREG) != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
#endif
|
||||
if (create_backup (buf, db->fp) != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
|
||||
if (fclose (db->fp) != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
|
||||
db->fp = NULL;
|
||||
|
||||
#ifdef WITH_SELINUX
|
||||
if (reset_selinux_file_context () != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
#endif
|
||||
if (errors != 0)
|
||||
if (errors)
|
||||
goto fail;
|
||||
} else {
|
||||
/*
|
||||
@@ -966,7 +966,7 @@ int commonio_close (struct commonio_db *db)
|
||||
|
||||
#ifdef WITH_SELINUX
|
||||
if (set_selinux_file_context (db->filename, S_IFREG) != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -976,24 +976,24 @@ int commonio_close (struct commonio_db *db)
|
||||
}
|
||||
|
||||
if (write_all (db) != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
|
||||
if (fflush (db->fp) != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
|
||||
if (fsync (fileno (db->fp)) != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
|
||||
if (fclose (db->fp) != 0) {
|
||||
errors++;
|
||||
errors = true;
|
||||
}
|
||||
|
||||
db->fp = NULL;
|
||||
|
||||
if (errors != 0) {
|
||||
if (errors) {
|
||||
unlink (buf);
|
||||
goto fail;
|
||||
}
|
||||
@@ -1011,11 +1011,11 @@ int commonio_close (struct commonio_db *db)
|
||||
nscd_need_reload = true;
|
||||
goto success;
|
||||
fail:
|
||||
errors++;
|
||||
errors = true;
|
||||
success:
|
||||
|
||||
free_linked_list (db);
|
||||
return errors == 0;
|
||||
return !errors;
|
||||
}
|
||||
|
||||
static /*@dependent@*/ /*@null@*/struct commonio_entry *next_entry_by_name (
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#if HAVE_SYS_RANDOM_H
|
||||
#include <sys/random.h>
|
||||
#if __has_include(<sys/random.h>)
|
||||
# include <sys/random.h>
|
||||
#endif
|
||||
|
||||
#include "bit.h"
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
* crypt(3), crypt_gensalt(3), and their
|
||||
* feature test macros may be defined in here.
|
||||
*/
|
||||
#if HAVE_CRYPT_H
|
||||
#if __has_include(<crypt.h>)
|
||||
# include <crypt.h>
|
||||
#endif
|
||||
|
||||
@@ -50,13 +50,8 @@
|
||||
|
||||
#include <dirent.h>
|
||||
|
||||
/*
|
||||
* Possible cases:
|
||||
* - /usr/include/shadow.h exists and includes the shadow group stuff.
|
||||
* - /usr/include/shadow.h exists, but we use our own gshadow.h.
|
||||
*/
|
||||
#include <shadow.h>
|
||||
#if defined(SHADOWGRP) && !defined(GSHADOW)
|
||||
#if defined(SHADOWGRP)
|
||||
#include "gshadow_.h"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -65,7 +65,8 @@
|
||||
(void) fprintf (shadow_logfd,
|
||||
_("crypt method not supported by libcrypt? (%s)\n"),
|
||||
method);
|
||||
exit (EXIT_FAILURE);
|
||||
errno = EINVAL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (strlen (cp) != 13) {
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "prototypes.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strchr/strrspn.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
#include "string/strspn/stprspn.h"
|
||||
#include "string/strtok/stpsep.h"
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ change_field(char *buf, size_t maxsize, const char *prompt)
|
||||
* makes it possible to change the field to empty, by
|
||||
* entering a space. --marekm
|
||||
*/
|
||||
stpcpy(strrspn(newf, " \t"), "");
|
||||
stpcpy(stprspn(newf, " \t"), "");
|
||||
cp = stpspn(newf, " \t");
|
||||
strcpy (buf, cp);
|
||||
}
|
||||
|
||||
@@ -101,8 +101,8 @@
|
||||
|
||||
#include "attr.h"
|
||||
#include "getdate.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
|
||||
|
||||
/* Some old versions of bison generate parsers that use bcopy.
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
|
||||
#include "attr.h"
|
||||
#include "getdate.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
|
||||
|
||||
/* Some old versions of bison generate parsers that use bcopy.
|
||||
|
||||
@@ -30,9 +30,10 @@
|
||||
#include "prototypes.h"
|
||||
#include "shadowlog_internal.h"
|
||||
#include "string/sprintf/xasprintf.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strchr/strrspn.h"
|
||||
#include "string/strcmp/strcaseeq.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
#include "string/strspn/stprspn.h"
|
||||
#include "string/strtok/stpsep.h"
|
||||
|
||||
|
||||
@@ -226,7 +227,7 @@ bool getdef_bool (const char *item)
|
||||
return false;
|
||||
}
|
||||
|
||||
return (strcasecmp (d->value, "yes") == 0);
|
||||
return strcaseeq(d->value, "yes");
|
||||
}
|
||||
|
||||
|
||||
@@ -561,7 +562,7 @@ static void def_load (void)
|
||||
/*
|
||||
* Trim trailing whitespace.
|
||||
*/
|
||||
stpcpy(strrspn(buf, " \t\n"), "");
|
||||
stpcpy(stprspn(buf, " \t\n"), "");
|
||||
|
||||
/*
|
||||
* Break the line into two fields.
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Newer versions of Linux libc already have shadow support. */
|
||||
#if defined(SHADOWGRP) && !defined(HAVE_SHADOWGRP) /*{ */
|
||||
#if defined(SHADOWGRP) && !__has_include(<gshadow.h>)
|
||||
|
||||
#ident "$Id$"
|
||||
|
||||
@@ -55,7 +54,7 @@ void setsgent (void)
|
||||
if (NULL != shadow) {
|
||||
rewind (shadow);
|
||||
} else {
|
||||
shadow = fopen (SGROUP_FILE, "r");
|
||||
shadow = fopen (SGROUP_FILE, "re");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,7 +106,7 @@ sgetsgent(const char *string)
|
||||
if (NULL != cp || i != FIELDS)
|
||||
return NULL;
|
||||
|
||||
sgroup.sg_name = fields[0];
|
||||
sgroup.sg_namp = fields[0];
|
||||
sgroup.sg_passwd = fields[1];
|
||||
|
||||
free(sgroup.sg_adm);
|
||||
@@ -193,7 +192,7 @@ sgetsgent(const char *string)
|
||||
setsgent ();
|
||||
|
||||
while ((sgrp = getsgent ()) != NULL) {
|
||||
if (streq(name, sgrp->sg_name)) {
|
||||
if (streq(name, sgrp->sg_namp)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -219,7 +218,7 @@ int putsgent (const struct sgrp *sgrp, FILE * fp)
|
||||
}
|
||||
|
||||
/* calculate the required buffer size */
|
||||
size = strlen (sgrp->sg_name) + strlen (sgrp->sg_passwd) + 10;
|
||||
size = strlen (sgrp->sg_namp) + strlen (sgrp->sg_passwd) + 10;
|
||||
for (i = 0; (NULL != sgrp->sg_adm) && (NULL != sgrp->sg_adm[i]); i++) {
|
||||
size += strlen (sgrp->sg_adm[i]) + 1;
|
||||
}
|
||||
@@ -236,7 +235,7 @@ int putsgent (const struct sgrp *sgrp, FILE * fp)
|
||||
/*
|
||||
* Copy the group name and passwd.
|
||||
*/
|
||||
cp = stpcpy(stpcpy(cp, sgrp->sg_name), ":");
|
||||
cp = stpcpy(stpcpy(cp, sgrp->sg_namp), ":");
|
||||
cp = stpcpy(stpcpy(cp, sgrp->sg_passwd), ":");
|
||||
|
||||
/*
|
||||
@@ -276,4 +275,4 @@ int putsgent (const struct sgrp *sgrp, FILE * fp)
|
||||
}
|
||||
#else
|
||||
extern int ISO_C_forbids_an_empty_translation_unit;
|
||||
#endif /*} SHADOWGRP */
|
||||
#endif // !SHADOWGRP
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 1988 - 1994, Julianne Frances Haugh
|
||||
* SPDX-FileCopyrightText: 1996 - 1997, Marek Michałkiewicz
|
||||
* SPDX-FileCopyrightText: 2003 - 2005, Tomasz Kłoczko
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
// SPDX-FileCopyrightText: 1988-1994, Julianne Frances Haugh
|
||||
// SPDX-FileCopyrightText: 1996-1997, Marek Michałkiewicz
|
||||
// SPDX-FileCopyrightText: 2003-2005, Tomasz Kłoczko
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _H_GSHADOW
|
||||
#define _H_GSHADOW
|
||||
#ifndef SHADOW_INCLUDE_LIB_GSHADOW__H_
|
||||
#define SHADOW_INCLUDE_LIB_GSHADOW__H_
|
||||
|
||||
|
||||
#if __has_include(<gshadow.h>)
|
||||
# include <gshadow.h>
|
||||
#else
|
||||
|
||||
/*
|
||||
* Shadow group security file structure
|
||||
*/
|
||||
|
||||
struct sgrp {
|
||||
char *sg_name; /* group name */
|
||||
char *sg_namp; /* group name */
|
||||
char *sg_passwd; /* group password */
|
||||
char **sg_adm; /* group administrator list */
|
||||
char **sg_mem; /* group membership list */
|
||||
@@ -39,4 +39,7 @@ void endsgent (void);
|
||||
int putsgent (const struct sgrp *, FILE *);
|
||||
|
||||
#define GSHADOW "/etc/gshadow"
|
||||
#endif /* ifndef _H_GSHADOW */
|
||||
|
||||
|
||||
#endif // !__has_include(<gshadow.h>)
|
||||
#endif // include guard
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <strings.h>
|
||||
#if HAVE_SYS_CAPABILITY_H
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/capability.h>
|
||||
#if __has_include(<sys/capability.h>)
|
||||
# include <sys/capability.h>
|
||||
#endif
|
||||
|
||||
#include "alloc/calloc.h"
|
||||
@@ -86,7 +86,7 @@ get_map_ranges(int ranges, int argc, char **argv)
|
||||
*/
|
||||
#define ULONG_DIGITS (((WIDTHOF(unsigned long) + 9)/10)*3)
|
||||
|
||||
#if HAVE_SYS_CAPABILITY_H
|
||||
#if __has_include(<sys/capability.h>)
|
||||
static inline bool maps_lower_root(int cap, int ranges, const struct map_range *mappings)
|
||||
{
|
||||
int idx;
|
||||
@@ -129,7 +129,7 @@ void write_mapping(int proc_dir_fd, int ranges, const struct map_range *mappings
|
||||
char *buf, *pos, *end;
|
||||
int fd;
|
||||
|
||||
#if HAVE_SYS_CAPABILITY_H
|
||||
#if __has_include(<sys/capability.h>)
|
||||
int cap;
|
||||
struct __user_cap_header_struct hdr = {_LINUX_CAPABILITY_VERSION_3, 0};
|
||||
struct __user_cap_data_struct data[2] = {{0}};
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
#include "atoi/str2i/str2s.h"
|
||||
#include "atoi/str2i/str2u.h"
|
||||
#include "string/memset/memzero.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
#include "typetraits.h"
|
||||
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
#include "getdef.h"
|
||||
#include "prototypes.h"
|
||||
#include "string/memset/memzero.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strcpy/strtcpy.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
#include "string/strtok/stpsep.h"
|
||||
|
||||
|
||||
|
||||
25
lib/motd.c
25
lib/motd.c
@@ -17,7 +17,6 @@
|
||||
#include "defines.h"
|
||||
#include "getdef.h"
|
||||
#include "prototypes.h"
|
||||
#include "string/strdup/xstrdup.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -27,7 +26,7 @@
|
||||
* it to the user's terminal at login time. The MOTD_FILE configuration
|
||||
* option is a colon-delimited list of filenames.
|
||||
*/
|
||||
void
|
||||
int
|
||||
motd(void)
|
||||
{
|
||||
FILE *fp;
|
||||
@@ -37,24 +36,26 @@ motd(void)
|
||||
int c;
|
||||
|
||||
motdfile = getdef_str ("MOTD_FILE");
|
||||
if (NULL == motdfile) {
|
||||
return;
|
||||
}
|
||||
if (NULL == motdfile)
|
||||
return 0;
|
||||
|
||||
motdlist = xstrdup (motdfile);
|
||||
motdlist = strdup(motdfile);
|
||||
if (motdlist == NULL)
|
||||
return -1;
|
||||
|
||||
mb = motdlist;
|
||||
while (NULL != (motdfile = strsep(&mb, ":"))) {
|
||||
fp = fopen (motdfile, "r");
|
||||
if (NULL != fp) {
|
||||
while ((c = getc (fp)) != EOF) {
|
||||
putchar (c);
|
||||
}
|
||||
fclose (fp);
|
||||
if (fp == NULL)
|
||||
continue;
|
||||
|
||||
while ((c = getc(fp)) != EOF) {
|
||||
putchar(c);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
fflush (stdout);
|
||||
|
||||
free (motdlist);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
#include "shadowlog_internal.h"
|
||||
#include "shadowlog.h"
|
||||
#include "string/sprintf/snprintf.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
#include "string/strtok/stpsep.h"
|
||||
|
||||
|
||||
|
||||
@@ -6,11 +6,12 @@
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <security/pam_appl.h>
|
||||
#ifdef HAVE_SECURITY_PAM_MISC_H
|
||||
#if __has_include(<security/pam_misc.h>)
|
||||
# include <security/pam_misc.h>
|
||||
#endif
|
||||
#ifdef HAVE_SECURITY_OPENPAM_H
|
||||
#if __has_include(<security/openpam.h>)
|
||||
# include <security/openpam.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "commonio.h"
|
||||
|
||||
/* addgrps.c */
|
||||
#if defined (HAVE_SETGROUPS) && ! defined (USE_PAM)
|
||||
#if !defined(USE_PAM)
|
||||
extern int add_groups (const char *);
|
||||
#endif
|
||||
|
||||
@@ -222,7 +222,7 @@ extern void login_prompt (char *, int);
|
||||
extern void mailcheck (void);
|
||||
|
||||
/* motd.c */
|
||||
extern void motd (void);
|
||||
extern int motd(void);
|
||||
|
||||
/* myname.c */
|
||||
extern /*@null@*//*@only@*/struct passwd *get_my_pwent (void);
|
||||
@@ -384,7 +384,7 @@ extern int del_seuser(const char *login_name);
|
||||
/* setugid.c */
|
||||
extern int setup_groups (const struct passwd *info);
|
||||
extern int change_uid (const struct passwd *info);
|
||||
#if (defined HAVE_INITGROUPS) && (! defined USE_PAM)
|
||||
#if !defined(USE_PAM)
|
||||
extern int setup_uid_gid (const struct passwd *info, bool is_console);
|
||||
#else
|
||||
extern int setup_uid_gid (const struct passwd *info);
|
||||
|
||||
63
lib/pwauth.c
63
lib/pwauth.c
@@ -48,16 +48,15 @@ static const char *PROMPT = gettext_noop ("%s's Password: ");
|
||||
* compared.
|
||||
*/
|
||||
|
||||
int pw_auth (const char *cipher,
|
||||
const char *user,
|
||||
int reason,
|
||||
/*@null@*/const char *input)
|
||||
int
|
||||
pw_auth(const char *cipher, const char *user)
|
||||
{
|
||||
int retval;
|
||||
char prompt[1024];
|
||||
char *clear = NULL;
|
||||
char *clear;
|
||||
const char *cp;
|
||||
const char *encrypted;
|
||||
const char *input;
|
||||
|
||||
#ifdef SKEY
|
||||
bool use_skey = false;
|
||||
@@ -65,35 +64,6 @@ int pw_auth (const char *cipher,
|
||||
struct skey skey;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* There are programs for adding and deleting authentication data.
|
||||
*/
|
||||
|
||||
if ((PW_ADD == reason) || (PW_DELETE == reason)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* There are even programs for changing the user name ...
|
||||
*/
|
||||
|
||||
if ((PW_CHANGE == reason) && (NULL != input)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* WARNING:
|
||||
*
|
||||
* When we change a password and we are root, we don't prompt.
|
||||
* This is so root can change any password without having to
|
||||
* know it. This is a policy decision that might have to be
|
||||
* revisited.
|
||||
*/
|
||||
|
||||
if ((PW_CHANGE == reason) && (getuid () == 0)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* WARNING:
|
||||
*
|
||||
@@ -128,25 +98,22 @@ int pw_auth (const char *cipher,
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Prompt for the password as required. FTPD and REXECD both
|
||||
* get the cleartext password for us.
|
||||
* Prompt for the password as required.
|
||||
*/
|
||||
|
||||
if ((PW_FTP != reason) && (PW_REXEC != reason) && (NULL == input)) {
|
||||
cp = getdef_str ("LOGIN_STRING");
|
||||
if (NULL == cp) {
|
||||
cp = _(PROMPT);
|
||||
}
|
||||
cp = getdef_str ("LOGIN_STRING");
|
||||
if (NULL == cp) {
|
||||
cp = _(PROMPT);
|
||||
}
|
||||
#ifdef SKEY
|
||||
if (use_skey) {
|
||||
printf ("[%s]\n", challenge_info);
|
||||
}
|
||||
if (use_skey) {
|
||||
printf ("[%s]\n", challenge_info);
|
||||
}
|
||||
#endif
|
||||
|
||||
SNPRINTF(prompt, cp, user);
|
||||
clear = agetpass(prompt);
|
||||
input = (clear == NULL) ? "" : clear;
|
||||
}
|
||||
SNPRINTF(prompt, cp, user);
|
||||
clear = agetpass(prompt);
|
||||
input = (clear == NULL) ? "" : clear;
|
||||
|
||||
/*
|
||||
* Convert the cleartext password into a ciphertext string.
|
||||
|
||||
33
lib/pwauth.h
33
lib/pwauth.h
@@ -7,42 +7,11 @@
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef _PWAUTH_H
|
||||
#define _PWAUTH_H
|
||||
|
||||
#ifndef USE_PAM
|
||||
int pw_auth (const char *cipher,
|
||||
const char *user,
|
||||
int flag,
|
||||
/*@null@*/const char *input);
|
||||
int pw_auth(const char *cipher, const char *user);
|
||||
#endif /* !USE_PAM */
|
||||
|
||||
/*
|
||||
* Local access
|
||||
*/
|
||||
|
||||
#define PW_SU 1
|
||||
#define PW_LOGIN 2
|
||||
|
||||
/*
|
||||
* Administrative functions
|
||||
*/
|
||||
|
||||
#define PW_ADD 101
|
||||
#define PW_CHANGE 102
|
||||
#define PW_DELETE 103
|
||||
|
||||
/*
|
||||
* Network access
|
||||
*/
|
||||
|
||||
#define PW_TELNET 201
|
||||
#define PW_RLOGIN 202
|
||||
#define PW_FTP 203
|
||||
#define PW_REXEC 204
|
||||
|
||||
#endif /* _PWAUTH_H */
|
||||
|
||||
@@ -28,7 +28,7 @@ void passwd_check (const char *user, const char *passwd, MAYBE_UNUSED const char
|
||||
if (NULL != sp) {
|
||||
passwd = sp->sp_pwdp;
|
||||
}
|
||||
if (pw_auth (passwd, user, PW_LOGIN, NULL) != 0) {
|
||||
if (pw_auth(passwd, user) != 0) {
|
||||
SYSLOG ((LOG_WARN, "incorrect password for `%s'", user));
|
||||
(void) sleep (1);
|
||||
fprintf (log_get_logfd(), _("Incorrect password for %s.\n"), user);
|
||||
|
||||
@@ -32,7 +32,7 @@ static int run_part(char *script_path, const char *name, const char *action)
|
||||
setenv("SUBJECT",name,1);
|
||||
execv(script_path,args);
|
||||
fprintf(shadow_logfd, "execv: %s\n", strerror(errno));
|
||||
exit(1);
|
||||
_exit(1);
|
||||
}
|
||||
|
||||
pid_status = wait(&wait_status);
|
||||
|
||||
13
lib/search/cmp/cmp.c
Normal file
13
lib/search/cmp/cmp.c
Normal file
@@ -0,0 +1,13 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "search/cmp/cmp.h"
|
||||
|
||||
|
||||
extern inline int cmp_int(const void *key, const void *elt);
|
||||
extern inline int cmp_long(const void *key, const void *elt);
|
||||
extern inline int cmp_uint(const void *key, const void *elt);
|
||||
extern inline int cmp_ulong(const void *key, const void *elt);
|
||||
86
lib/search/cmp/cmp.h
Normal file
86
lib/search/cmp/cmp.h
Normal file
@@ -0,0 +1,86 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_SEARCH_CMP_CMP_H_
|
||||
#define SHADOW_INCLUDE_LIB_SEARCH_CMP_CMP_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
||||
#define CMP(TYPE) \
|
||||
( \
|
||||
_Generic((TYPE) 0, \
|
||||
int *: cmp_int, \
|
||||
long *: cmp_long, \
|
||||
unsigned int *: cmp_uint, \
|
||||
unsigned long *: cmp_ulong \
|
||||
) \
|
||||
)
|
||||
|
||||
|
||||
/* Compatible with bsearch(3), lfind(3), and qsort(3). */
|
||||
inline int cmp_int(const void *key, const void *elt);
|
||||
inline int cmp_long(const void *key, const void *elt);
|
||||
inline int cmp_uint(const void *key, const void *elt);
|
||||
inline int cmp_ulong(const void *key, const void *elt);
|
||||
|
||||
|
||||
inline int
|
||||
cmp_int(const void *key, const void *elt)
|
||||
{
|
||||
const int *k = key;
|
||||
const int *e = elt;
|
||||
|
||||
if (*k < *e)
|
||||
return -1;
|
||||
if (*k > *e)
|
||||
return +1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
inline int
|
||||
cmp_long(const void *key, const void *elt)
|
||||
{
|
||||
const long *k = key;
|
||||
const long *e = elt;
|
||||
|
||||
if (*k < *e)
|
||||
return -1;
|
||||
if (*k > *e)
|
||||
return +1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
inline int
|
||||
cmp_uint(const void *key, const void *elt)
|
||||
{
|
||||
const unsigned int *k = key;
|
||||
const unsigned int *e = elt;
|
||||
|
||||
if (*k < *e)
|
||||
return -1;
|
||||
if (*k > *e)
|
||||
return +1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
inline int
|
||||
cmp_ulong(const void *key, const void *elt)
|
||||
{
|
||||
const unsigned long *k = key;
|
||||
const unsigned long *e = elt;
|
||||
|
||||
if (*k < *e)
|
||||
return -1;
|
||||
if (*k > *e)
|
||||
return +1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
13
lib/search/l/lfind.c
Normal file
13
lib/search/l/lfind.c
Normal file
@@ -0,0 +1,13 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "search/l/lfind.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
|
||||
extern inline void *lfind_(const void *k, const void *a, size_t n, size_t ksize,
|
||||
typeof(int (const void *k, const void *elt)) *cmp);
|
||||
44
lib/search/l/lfind.h
Normal file
44
lib/search/l/lfind.h
Normal file
@@ -0,0 +1,44 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_SEARCH_L_LFIND_H_
|
||||
#define SHADOW_INCLUDE_LIB_SEARCH_L_LFIND_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <search.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include "must_be.h"
|
||||
#include "search/cmp/cmp.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
|
||||
#define LFIND(k, a, n) \
|
||||
({ \
|
||||
__auto_type k_ = k; \
|
||||
__auto_type a_ = a; \
|
||||
\
|
||||
static_assert(is_same_typeof(k_, a_), ""); \
|
||||
\
|
||||
(typeof(k_)) lfind_(k_, a_, n, sizeof(*k_), CMP(typeof(k_))); \
|
||||
})
|
||||
|
||||
|
||||
inline void *lfind_(const void *k, const void *a, size_t n, size_t ksize,
|
||||
typeof(int (const void *k, const void *elt)) *cmp);
|
||||
|
||||
|
||||
inline void *
|
||||
lfind_(const void *k, const void *a, size_t n, size_t ksize,
|
||||
typeof(int (const void *k, const void *elt)) *cmp)
|
||||
{
|
||||
// lfind(3) wants a pointer to n for historic reasons.
|
||||
return lfind(k, a, &n, ksize, cmp);
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
@@ -4,7 +4,4 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "string/strchr/strrspn.h"
|
||||
|
||||
|
||||
extern inline char *strrspn(char *restrict s, const char *restrict accept);
|
||||
#include "search/l/lsearch.h"
|
||||
30
lib/search/l/lsearch.h
Normal file
30
lib/search/l/lsearch.h
Normal file
@@ -0,0 +1,30 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_SEARCH_L_LSEARCH_H_
|
||||
#define SHADOW_INCLUDE_LIB_SEARCH_L_LSEARCH_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <search.h>
|
||||
|
||||
#include "must_be.h"
|
||||
#include "search/cmp/cmp.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
|
||||
#define LSEARCH(k, a, n) \
|
||||
({ \
|
||||
__auto_type k_ = k; \
|
||||
__auto_type a_ = a; \
|
||||
\
|
||||
static_assert(is_same_typeof(k_, a_), ""); \
|
||||
\
|
||||
(typeof(k_)) lsearch(k_, a_, n, sizeof(*k_), CMP(typeof(k_)));\
|
||||
})
|
||||
|
||||
|
||||
#endif // include guard
|
||||
7
lib/search/sort/qsort.c
Normal file
7
lib/search/sort/qsort.c
Normal file
@@ -0,0 +1,7 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "search/sort/qsort.h"
|
||||
25
lib/search/sort/qsort.h
Normal file
25
lib/search/sort/qsort.h
Normal file
@@ -0,0 +1,25 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_SEARCH_SORT_QSORT_H_
|
||||
#define SHADOW_INCLUDE_LIB_SEARCH_SORT_QSORT_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "must_be.h"
|
||||
#include "search/cmp/cmp.h"
|
||||
|
||||
|
||||
#define QSORT(a, n) do \
|
||||
{ \
|
||||
__auto_type p_ = a; \
|
||||
\
|
||||
qsort(p_, n, sizeof(*p_), CMP(typeof(p_))); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#endif // include guard
|
||||
@@ -47,7 +47,7 @@ int setup_groups (const struct passwd *info)
|
||||
closelog ();
|
||||
return -1;
|
||||
}
|
||||
#ifdef HAVE_INITGROUPS
|
||||
|
||||
/*
|
||||
* For systems which support multiple concurrent groups, go get
|
||||
* the group set from the /etc/group file.
|
||||
@@ -60,7 +60,7 @@ int setup_groups (const struct passwd *info)
|
||||
closelog ();
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ int change_uid (const struct passwd *info)
|
||||
* Returns 0 on success, or -1 on failure.
|
||||
*/
|
||||
|
||||
#if defined (HAVE_INITGROUPS) && ! (defined USE_PAM)
|
||||
#if !defined(USE_PAM)
|
||||
int setup_uid_gid (const struct passwd *info, bool is_console)
|
||||
#else
|
||||
int setup_uid_gid (const struct passwd *info)
|
||||
@@ -106,7 +106,7 @@ int setup_uid_gid (const struct passwd *info)
|
||||
return -1;
|
||||
}
|
||||
|
||||
#if defined (HAVE_INITGROUPS) && ! defined (USE_PAM)
|
||||
#if !defined(USE_PAM)
|
||||
if (is_console) {
|
||||
const char *cp = getdef_str ("CONSOLE_GROUPS");
|
||||
|
||||
@@ -114,7 +114,7 @@ int setup_uid_gid (const struct passwd *info)
|
||||
perror ("Warning: add_groups");
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_INITGROUPS && !USE_PAM*/
|
||||
#endif // !USE_PAM
|
||||
|
||||
if (change_uid (info) < 0) {
|
||||
return -1;
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
#include "getdef.h"
|
||||
#include "shadowlog.h"
|
||||
#include "string/sprintf/xasprintf.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strdup/xstrdup.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
#include "string/strtok/stpsep.h"
|
||||
|
||||
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
/* Do the same as the other _dup function, even if we know the
|
||||
* structure. */
|
||||
/*@-mustfreeonly@*/
|
||||
sg->sg_name = strdup (sgent->sg_name);
|
||||
sg->sg_namp = strdup (sgent->sg_namp);
|
||||
/*@=mustfreeonly@*/
|
||||
if (NULL == sg->sg_name) {
|
||||
if (NULL == sg->sg_namp) {
|
||||
free (sg);
|
||||
return NULL;
|
||||
}
|
||||
@@ -46,7 +46,7 @@
|
||||
sg->sg_passwd = strdup (sgent->sg_passwd);
|
||||
/*@=mustfreeonly@*/
|
||||
if (NULL == sg->sg_passwd) {
|
||||
free (sg->sg_name);
|
||||
free (sg->sg_namp);
|
||||
free (sg);
|
||||
return NULL;
|
||||
}
|
||||
@@ -57,7 +57,7 @@
|
||||
/*@=mustfreeonly@*/
|
||||
if (NULL == sg->sg_adm) {
|
||||
free (sg->sg_passwd);
|
||||
free (sg->sg_name);
|
||||
free (sg->sg_namp);
|
||||
free (sg);
|
||||
return NULL;
|
||||
}
|
||||
@@ -69,7 +69,7 @@
|
||||
}
|
||||
free (sg->sg_adm);
|
||||
free (sg->sg_passwd);
|
||||
free (sg->sg_name);
|
||||
free (sg->sg_namp);
|
||||
free (sg);
|
||||
return NULL;
|
||||
}
|
||||
@@ -86,7 +86,7 @@
|
||||
}
|
||||
free (sg->sg_adm);
|
||||
free (sg->sg_passwd);
|
||||
free (sg->sg_name);
|
||||
free (sg->sg_namp);
|
||||
free (sg);
|
||||
return NULL;
|
||||
}
|
||||
@@ -102,7 +102,7 @@
|
||||
}
|
||||
free (sg->sg_adm);
|
||||
free (sg->sg_passwd);
|
||||
free (sg->sg_name);
|
||||
free (sg->sg_namp);
|
||||
free (sg);
|
||||
return NULL;
|
||||
}
|
||||
@@ -131,7 +131,7 @@ void
|
||||
sgr_free(/*@only@*/struct sgrp *sgent)
|
||||
{
|
||||
size_t i;
|
||||
free (sgent->sg_name);
|
||||
free (sgent->sg_namp);
|
||||
if (NULL != sgent->sg_passwd)
|
||||
free(strzero(sgent->sg_passwd));
|
||||
|
||||
@@ -150,7 +150,7 @@ static const char *gshadow_getname (const void *ent)
|
||||
{
|
||||
const struct sgrp *gr = ent;
|
||||
|
||||
return gr->sg_name;
|
||||
return gr->sg_namp;
|
||||
}
|
||||
|
||||
static void *gshadow_parse (const char *line)
|
||||
@@ -163,7 +163,7 @@ static int gshadow_put (const void *ent, FILE * file)
|
||||
const struct sgrp *sg = ent;
|
||||
|
||||
if ( (NULL == sg)
|
||||
|| (valid_field (sg->sg_name, ":\n") == -1)
|
||||
|| (valid_field (sg->sg_namp, ":\n") == -1)
|
||||
|| (valid_field (sg->sg_passwd, ":\n") == -1)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ void setspent (void)
|
||||
if (NULL != shadow) {
|
||||
rewind (shadow);
|
||||
}else {
|
||||
shadow = fopen (SHADOW_FILE, "r");
|
||||
shadow = fopen (SHADOW_FILE, "re");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
13
lib/shadow/grp/agetgroups.c
Normal file
13
lib/shadow/grp/agetgroups.c
Normal file
@@ -0,0 +1,13 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "shadow/grp/agetgroups.h"
|
||||
|
||||
#include <stddef.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
|
||||
extern inline gid_t *agetgroups(size_t *ngids);
|
||||
52
lib/shadow/grp/agetgroups.h
Normal file
52
lib/shadow/grp/agetgroups.h
Normal file
@@ -0,0 +1,52 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_SHADOW_GRP_AGETGROUPS_H_
|
||||
#define SHADOW_INCLUDE_LIB_SHADOW_GRP_AGETGROUPS_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "alloc/malloc.h"
|
||||
#include "attr.h"
|
||||
|
||||
|
||||
ATTR_ACCESS(write_only, 1)
|
||||
ATTR_MALLOC(free)
|
||||
inline gid_t *agetgroups(size_t *ngids);
|
||||
|
||||
|
||||
// Like getgroups(3), but allocate the buffer.
|
||||
// *ngids is used to return the number of elements in the allocated array.
|
||||
inline gid_t *
|
||||
agetgroups(size_t *ngids)
|
||||
{
|
||||
int n;
|
||||
gid_t *gids;
|
||||
|
||||
n = getgroups(0, NULL);
|
||||
if (n == -1)
|
||||
return NULL;
|
||||
|
||||
gids = MALLOC(n, gid_t);
|
||||
if (gids == NULL)
|
||||
return NULL;
|
||||
|
||||
n = getgroups(n, gids);
|
||||
if (n == -1) {
|
||||
free(gids);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
*ngids = n;
|
||||
return gids;
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
@@ -35,11 +35,11 @@ run_command(const char *cmd, const char *argv[],
|
||||
(void) execve (cmd, (char * const *) argv,
|
||||
(char * const *) envp);
|
||||
if (ENOENT == errno) {
|
||||
exit (E_CMD_NOTFOUND);
|
||||
_exit (E_CMD_NOTFOUND);
|
||||
}
|
||||
fprintf (shadow_logfd, "%s: cannot execute %s: %s\n",
|
||||
shadow_progname, cmd, strerror (errno));
|
||||
exit (E_CMD_NOEXEC);
|
||||
_exit (E_CMD_NOEXEC);
|
||||
} else if ((pid_t)-1 == pid) {
|
||||
fprintf (shadow_logfd, "%s: cannot execute %s: %s\n",
|
||||
shadow_progname, cmd, strerror (errno));
|
||||
|
||||
12
lib/string/ctype/strisascii/strisdigit.c
Normal file
12
lib/string/ctype/strisascii/strisdigit.c
Normal file
@@ -0,0 +1,12 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "string/ctype/strisascii/strisdigit.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
extern inline bool strisdigit(const char *s);
|
||||
32
lib/string/ctype/strisascii/strisdigit.h
Normal file
32
lib/string/ctype/strisascii/strisdigit.h
Normal file
@@ -0,0 +1,32 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_STRISDIGIT_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_STRISDIGIT_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
|
||||
|
||||
inline bool strisdigit(const char *s);
|
||||
|
||||
|
||||
// string is [:digit:]
|
||||
// Like isdigit(3), but check all characters in the string.
|
||||
inline bool
|
||||
strisdigit(const char *s)
|
||||
{
|
||||
if (streq(s, ""))
|
||||
return false;
|
||||
|
||||
return streq(stpspn(s, "0123456789"), "");
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
@@ -18,6 +18,7 @@ ATTR_STRING(1)
|
||||
inline size_t strchrcnt(const char *s, char c);
|
||||
|
||||
|
||||
// string character count
|
||||
inline size_t
|
||||
strchrcnt(const char *s, char c)
|
||||
{
|
||||
|
||||
12
lib/string/strchr/strchrscnt.c
Normal file
12
lib/string/strchr/strchrscnt.c
Normal file
@@ -0,0 +1,12 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "string/strchr/strchrscnt.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
|
||||
extern inline size_t strchrscnt(const char *s, const char *c);
|
||||
37
lib/string/strchr/strchrscnt.h
Normal file
37
lib/string/strchr/strchrscnt.h
Normal file
@@ -0,0 +1,37 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRCHR_STRCHRSCNT_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRCHR_STRCHRSCNT_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "attr.h"
|
||||
#include "string/strchr/strchrcnt.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
|
||||
|
||||
ATTR_STRING(1)
|
||||
ATTR_STRING(2)
|
||||
inline size_t strchrscnt(const char *s, const char *c);
|
||||
|
||||
|
||||
// string characters count
|
||||
// Similar to strchrcnt(), but search for multiple characters.
|
||||
inline size_t
|
||||
strchrscnt(const char *s, const char *c)
|
||||
{
|
||||
size_t n = 0;
|
||||
|
||||
for (; !streq(c, ""); c++)
|
||||
n += strchrcnt(s, *c);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "attr.h"
|
||||
|
||||
|
||||
// string null-byte
|
||||
// Similar to strlen(3), but return a pointer instead of an offset.
|
||||
#define strnul(s) \
|
||||
({ \
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRCHR_STRRSPN_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRCHR_STRRSPN_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "attr.h"
|
||||
#include "string/strchr/strnul.h"
|
||||
|
||||
|
||||
ATTR_STRING(2)
|
||||
inline char *strrspn(char *restrict s, const char *restrict accept);
|
||||
|
||||
|
||||
// Available in Oracle Solaris: strrspn(3GEN).
|
||||
// <https://docs.oracle.com/cd/E36784_01/html/E36877/strrspn-3gen.html>
|
||||
inline char *
|
||||
strrspn(char *restrict s, const char *restrict accept)
|
||||
{
|
||||
char *p;
|
||||
|
||||
p = strnul(s);
|
||||
while (p > s) {
|
||||
p--;
|
||||
if (strchr(accept, *p) == NULL)
|
||||
return p + 1;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
12
lib/string/strcmp/strcaseeq.c
Normal file
12
lib/string/strcmp/strcaseeq.c
Normal file
@@ -0,0 +1,12 @@
|
||||
// SPDX-FileCopyrightText: 2024-2025, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "string/strcmp/strcaseeq.h"
|
||||
|
||||
|
||||
extern inline bool strcaseeq(const char *s1, const char *s2);
|
||||
30
lib/string/strcmp/strcaseeq.h
Normal file
30
lib/string/strcmp/strcaseeq.h
Normal file
@@ -0,0 +1,30 @@
|
||||
// SPDX-FileCopyrightText: 2024-2025, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRCMP_STRCASEEQ_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRCMP_STRCASEEQ_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <strings.h>
|
||||
|
||||
#include "attr.h"
|
||||
|
||||
|
||||
ATTR_STRING(1) ATTR_STRING(2)
|
||||
inline bool strcaseeq(const char *s1, const char *s2);
|
||||
|
||||
|
||||
// strings case-insensitive equal
|
||||
// streq(), but case-insensitive.
|
||||
inline bool
|
||||
strcaseeq(const char *s1, const char *s2)
|
||||
{
|
||||
return strcasecmp(s1, s2) == 0;
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
@@ -19,6 +19,7 @@ ATTR_STRING(2)
|
||||
inline bool streq(const char *s1, const char *s2);
|
||||
|
||||
|
||||
// strings equal
|
||||
/* Return true if s1 and s2 compare equal. */
|
||||
inline bool
|
||||
streq(const char *s1, const char *s2)
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "sizeof.h"
|
||||
|
||||
|
||||
// string format time
|
||||
#define STRFTIME(dst, fmt, tm) strftime(dst, NITEMS(dst), fmt, tm)
|
||||
|
||||
|
||||
|
||||
7
lib/string/strspn/stprcspn.c
Normal file
7
lib/string/strspn/stprcspn.c
Normal file
@@ -0,0 +1,7 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "string/strspn/stprcspn.h"
|
||||
25
lib/string/strspn/stprcspn.h
Normal file
25
lib/string/strspn/stprcspn.h
Normal file
@@ -0,0 +1,25 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRSPN_STPRCSPN_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRSPN_STPRCSPN_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "string/strspn/strrcspn.h"
|
||||
|
||||
|
||||
// string returns-pointer rear complement substring prefix length
|
||||
#define stprcspn(s, reject) \
|
||||
({ \
|
||||
__auto_type s_ = (s); \
|
||||
\
|
||||
s_ + strrcspn(s_, reject); \
|
||||
})
|
||||
|
||||
|
||||
#endif // include guard
|
||||
7
lib/string/strspn/stprspn.c
Normal file
7
lib/string/strspn/stprspn.c
Normal file
@@ -0,0 +1,7 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "string/strspn/stprspn.h"
|
||||
27
lib/string/strspn/stprspn.h
Normal file
27
lib/string/strspn/stprspn.h
Normal file
@@ -0,0 +1,27 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRSPN_STPRSPN_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRSPN_STPRSPN_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "string/strspn/strrspn.h"
|
||||
|
||||
|
||||
// string returns-pointer rear substring prefix length
|
||||
// Available in Oracle Solaris as strrspn(3GEN).
|
||||
// <https://docs.oracle.com/cd/E36784_01/html/E36877/strrspn-3gen.html>
|
||||
#define stprspn(s, accept) \
|
||||
({ \
|
||||
__auto_type s_ = (s); \
|
||||
\
|
||||
s_ + strrspn_(s_, accept); \
|
||||
})
|
||||
|
||||
|
||||
#endif // include guard
|
||||
@@ -4,4 +4,4 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
@@ -2,8 +2,8 @@
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRCHR_STPSPN_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRCHR_STPSPN_H_
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRSPN_STPSPN_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRSPN_STPSPN_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "attr.h"
|
||||
|
||||
|
||||
// string returns-pointer substring prefix length
|
||||
// Similar to strspn(3), but return a pointer instead of an offset.
|
||||
// Similar to strchrnul(3), but search for any bytes not in 'accept'.
|
||||
#define stpspn(s, accept) \
|
||||
12
lib/string/strspn/strrcspn.c
Normal file
12
lib/string/strspn/strrcspn.c
Normal file
@@ -0,0 +1,12 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "string/strspn/strrcspn.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
|
||||
extern inline size_t strrcspn(const char *s, const char *reject);
|
||||
39
lib/string/strspn/strrcspn.h
Normal file
39
lib/string/strspn/strrcspn.h
Normal file
@@ -0,0 +1,39 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRSPN_STRRCSPN_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRSPN_STRRCSPN_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "attr.h"
|
||||
#include "string/strchr/strnul.h"
|
||||
|
||||
|
||||
ATTR_STRING(1)
|
||||
ATTR_STRING(2)
|
||||
inline size_t strrcspn(const char *s, const char *reject);
|
||||
|
||||
|
||||
// string rear complement substring prefix length
|
||||
inline size_t
|
||||
strrcspn(const char *s, const char *reject)
|
||||
{
|
||||
char *p;
|
||||
|
||||
p = strnul(s);
|
||||
while (p > s) {
|
||||
p--;
|
||||
if (strchr(reject, *p) != NULL)
|
||||
return p + 1 - s;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
12
lib/string/strspn/strrspn.c
Normal file
12
lib/string/strspn/strrspn.c
Normal file
@@ -0,0 +1,12 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "string/strspn/strrspn.h"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
|
||||
extern inline size_t strrspn_(const char *s, const char *accept);
|
||||
39
lib/string/strspn/strrspn.h
Normal file
39
lib/string/strspn/strrspn.h
Normal file
@@ -0,0 +1,39 @@
|
||||
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
|
||||
#ifndef SHADOW_INCLUDE_LIB_STRING_STRSPN_STRRSPN_H_
|
||||
#define SHADOW_INCLUDE_LIB_STRING_STRSPN_STRRSPN_H_
|
||||
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "attr.h"
|
||||
#include "string/strchr/strnul.h"
|
||||
|
||||
|
||||
ATTR_STRING(1)
|
||||
ATTR_STRING(2)
|
||||
inline size_t strrspn_(const char *s, const char *accept);
|
||||
|
||||
|
||||
// string rear substring prefix length
|
||||
inline size_t
|
||||
strrspn_(const char *s, const char *accept)
|
||||
{
|
||||
char *p;
|
||||
|
||||
p = strnul(s);
|
||||
while (p > s) {
|
||||
p--;
|
||||
if (strchr(accept, *p) == NULL)
|
||||
return p + 1 - s;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#endif // include guard
|
||||
@@ -17,6 +17,7 @@ ATTR_STRING(1) ATTR_STRING(2)
|
||||
inline char *stpsep(char *s, const char *delim);
|
||||
|
||||
|
||||
// string returns-pointer separate
|
||||
// Similar to strsep(3),
|
||||
// but return the next token, and don't update the input pointer.
|
||||
// Similar to strtok(3),
|
||||
|
||||
@@ -14,8 +14,9 @@
|
||||
#include "atoi/str2i/str2s.h"
|
||||
#include "getdate.h"
|
||||
#include "prototypes.h"
|
||||
#include "string/strchr/stpspn.h"
|
||||
#include "string/ctype/strisascii/strisdigit.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
#include "string/strspn/stpspn.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -35,7 +36,6 @@
|
||||
long strtoday (const char *str)
|
||||
{
|
||||
time_t t;
|
||||
bool isnum = true;
|
||||
const char *s = str;
|
||||
|
||||
/*
|
||||
@@ -54,14 +54,9 @@ long strtoday (const char *str)
|
||||
s++;
|
||||
}
|
||||
s = stpspn(s, " ");
|
||||
while (isnum && !streq(s, "")) {
|
||||
if (!isdigit (*s)) {
|
||||
isnum = false;
|
||||
}
|
||||
s++;
|
||||
}
|
||||
if (isnum) {
|
||||
if (strisdigit(s)) {
|
||||
long retdate;
|
||||
|
||||
if (str2sl(&retdate, str) == -1)
|
||||
return -2;
|
||||
return retdate;
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "alloc/realloc.h"
|
||||
#include "alloc/reallocf.h"
|
||||
#include "atoi/str2i/str2u.h"
|
||||
#include "string/ctype/strisascii/strisdigit.h"
|
||||
#include "string/sprintf/snprintf.h"
|
||||
#include "string/strcmp/streq.h"
|
||||
|
||||
@@ -926,22 +927,12 @@ out:
|
||||
return count;
|
||||
}
|
||||
|
||||
static bool all_digits(const char *str)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; str[i] != '\0'; i++)
|
||||
if (!isdigit(str[i]))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
static int append_uids(uid_t **uids, const char *owner, int n)
|
||||
{
|
||||
int i;
|
||||
uid_t owner_uid;
|
||||
|
||||
if (all_digits(owner)) {
|
||||
if (strisdigit(owner)) {
|
||||
i = sscanf(owner, "%d", &owner_uid);
|
||||
if (i != 1) {
|
||||
// should not happen
|
||||
|
||||
@@ -39,7 +39,6 @@ man_MANS = \
|
||||
man1/sg.1 \
|
||||
man3/shadow.3 \
|
||||
man5/shadow.5 \
|
||||
man5/suauth.5 \
|
||||
man8/useradd.8 \
|
||||
man8/userdel.8 \
|
||||
man8/usermod.8 \
|
||||
@@ -57,6 +56,7 @@ man_nopam = \
|
||||
|
||||
if WITH_SU
|
||||
man_MANS += man1/su.1
|
||||
man_nopam += man5/suauth.5
|
||||
endif
|
||||
|
||||
if !USE_PAM
|
||||
|
||||
@@ -89,11 +89,12 @@ build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
@ENABLE_LASTLOG_TRUE@am__append_1 = man8/lastlog.8
|
||||
@WITH_SU_TRUE@am__append_2 = man1/su.1
|
||||
@USE_PAM_FALSE@am__append_3 = $(man_nopam)
|
||||
@ENABLE_SUBIDS_TRUE@am__append_4 = $(man_subids)
|
||||
@ENABLE_LASTLOG_TRUE@am__append_5 = lastlog.8.xml
|
||||
@USE_PAM_TRUE@am__append_6 = $(man_nopam)
|
||||
@ENABLE_SUBIDS_FALSE@am__append_7 = $(man_subids)
|
||||
@WITH_SU_TRUE@am__append_3 = man5/suauth.5
|
||||
@USE_PAM_FALSE@am__append_4 = $(man_nopam)
|
||||
@ENABLE_SUBIDS_TRUE@am__append_5 = $(man_subids)
|
||||
@ENABLE_LASTLOG_TRUE@am__append_6 = lastlog.8.xml
|
||||
@USE_PAM_TRUE@am__append_7 = $(man_nopam)
|
||||
@ENABLE_SUBIDS_FALSE@am__append_8 = $(man_subids)
|
||||
subdir = man
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
|
||||
@@ -418,14 +419,11 @@ man_MANS = man1/chage.1 man1/chfn.1 man8/chgpasswd.8 man8/chpasswd.8 \
|
||||
man8/logoutd.8 man1/newgrp.1 man8/newusers.8 man8/nologin.8 \
|
||||
man1/passwd.1 man5/passwd.5 man8/pwck.8 man8/pwconv.8 \
|
||||
man8/pwunconv.8 man1/sg.1 man3/shadow.3 man5/shadow.5 \
|
||||
man5/suauth.5 man8/useradd.8 man8/userdel.8 man8/usermod.8 \
|
||||
man8/vigr.8 man8/vipw.8 $(am__append_1) $(am__append_2) \
|
||||
$(am__append_3) $(am__append_4)
|
||||
man_nopam = \
|
||||
man5/limits.5 \
|
||||
man5/login.access.5 \
|
||||
man5/porttime.5
|
||||
|
||||
man8/useradd.8 man8/userdel.8 man8/usermod.8 man8/vigr.8 \
|
||||
man8/vipw.8 $(am__append_1) $(am__append_2) $(am__append_4) \
|
||||
$(am__append_5)
|
||||
man_nopam = man5/limits.5 man5/login.access.5 man5/porttime.5 \
|
||||
$(am__append_3)
|
||||
man_subids = \
|
||||
man1/getsubids.1 \
|
||||
man1/newgidmap.1 \
|
||||
@@ -443,7 +441,7 @@ man_XMANS = chage.1.xml chfn.1.xml chgpasswd.8.xml chpasswd.8.xml \
|
||||
porttime.5.xml pwck.8.xml pwconv.8.xml shadow.3.xml \
|
||||
shadow.5.xml sg.1.xml su.1.xml suauth.5.xml subgid.5.xml \
|
||||
subuid.5.xml useradd.8.xml userdel.8.xml usermod.8.xml \
|
||||
vipw.8.xml $(am__append_5)
|
||||
vipw.8.xml $(am__append_6)
|
||||
login_defs_v = \
|
||||
BCRYPT_MIN_ROUNDS.xml \
|
||||
CHFN_AUTH.xml \
|
||||
@@ -518,7 +516,7 @@ login_defs_v = \
|
||||
EXTRA_DIST = $(man_MANS) $(man_XMANS) config.xml $(addprefix \
|
||||
login.defs.d/,$(login_defs_v)) man8/sulogin.8 sulogin.8.xml \
|
||||
generate_mans.mak generate_translations.mak its.rules \
|
||||
shadow-man.xsl $(am__append_6) $(am__append_7)
|
||||
shadow-man.xsl $(am__append_7) $(am__append_8)
|
||||
@ENABLE_REGENERATE_MAN_TRUE@@HAVE_VENDORDIR_FALSE@VENDORDIR_COND = without_vendordir
|
||||
@ENABLE_REGENERATE_MAN_TRUE@@HAVE_VENDORDIR_TRUE@VENDORDIR_COND = with_vendordir
|
||||
@ENABLE_REGENERATE_MAN_TRUE@@USE_PAM_FALSE@PAM_COND = no_pam
|
||||
|
||||
@@ -208,8 +208,7 @@
|
||||
found under the directory <replaceable>PREFIX_DIR</replaceable>.
|
||||
This option does not chroot and is intended for preparing a cross-compilation
|
||||
target. Some limitations: NIS and LDAP users/groups are
|
||||
not verified. PAM authentication is using the host files.
|
||||
No SELINUX support.
|
||||
not verified. No SELINUX support.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<!ENTITY GROUP_NAME_MAX_LENGTH '32'>
|
||||
<!ENTITY SHADOW_UTILS_VERSION '4.17.0'>
|
||||
<!ENTITY SHADOW_UTILS_VERSION '4.17.3'>
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: chfn
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25/12/2024
|
||||
.\" Date: 24/02/2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: Danish
|
||||
.\"
|
||||
.TH "CHFN" "1" "25/12/2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "CHFN" "1" "24/02/2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: newgrp
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25/12/2024
|
||||
.\" Date: 24/02/2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: Danish
|
||||
.\"
|
||||
.TH "NEWGRP" "1" "25/12/2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "NEWGRP" "1" "24/02/2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: sg
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25/12/2024
|
||||
.\" Date: 24/02/2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: Danish
|
||||
.\"
|
||||
.TH "SG" "1" "25/12/2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "SG" "1" "24/02/2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: gshadow
|
||||
.\" Author: Nicolas Fran\(,cois <nicolas.francois@centraliens.net>
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25/12/2024
|
||||
.\" Date: 24/02/2025
|
||||
.\" Manual: File Formats and Configuration Files
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: Danish
|
||||
.\"
|
||||
.TH "GSHADOW" "5" "25/12/2024" "shadow\-utils 4\&.17\&.0" "File Formats and Configuration"
|
||||
.TH "GSHADOW" "5" "24/02/2025" "shadow\-utils 4\&.17\&.3" "File Formats and Configuration"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: groupdel
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25/12/2024
|
||||
.\" Date: 24/02/2025
|
||||
.\" Manual: System Management Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: Danish
|
||||
.\"
|
||||
.TH "GROUPDEL" "8" "25/12/2024" "shadow\-utils 4\&.17\&.0" "System Management Commands"
|
||||
.TH "GROUPDEL" "8" "24/02/2025" "shadow\-utils 4\&.17\&.3" "System Management Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: logoutd
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25/12/2024
|
||||
.\" Date: 24/02/2025
|
||||
.\" Manual: System Management Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: Danish
|
||||
.\"
|
||||
.TH "LOGOUTD" "8" "25/12/2024" "shadow\-utils 4\&.17\&.0" "System Management Commands"
|
||||
.TH "LOGOUTD" "8" "24/02/2025" "shadow\-utils 4\&.17\&.3" "System Management Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: nologin
|
||||
.\" Author: Nicolas Fran\(,cois <nicolas.francois@centraliens.net>
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25/12/2024
|
||||
.\" Date: 24/02/2025
|
||||
.\" Manual: System Management Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: Danish
|
||||
.\"
|
||||
.TH "NOLOGIN" "8" "25/12/2024" "shadow\-utils 4\&.17\&.0" "System Management Commands"
|
||||
.TH "NOLOGIN" "8" "24/02/2025" "shadow\-utils 4\&.17\&.3" "System Management Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: vipw
|
||||
.\" Author: Marek Micha\(/lkiewicz
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25/12/2024
|
||||
.\" Date: 24/02/2025
|
||||
.\" Manual: System Management Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: Danish
|
||||
.\"
|
||||
.TH "VIPW" "8" "25/12/2024" "shadow\-utils 4\&.17\&.0" "System Management Commands"
|
||||
.TH "VIPW" "8" "24/02/2025" "shadow\-utils 4\&.17\&.3" "System Management Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: chage
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "CHAGE" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "CHAGE" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
@@ -139,7 +139,7 @@ directory\&. Only absolute paths are supported\&.
|
||||
\fB\-P\fR, \fB\-\-prefix\fR\ \&\fIPREFIX_DIR\fR
|
||||
.RS 4
|
||||
Apply changes to configuration files under the root filesystem found under the directory
|
||||
\fIPREFIX_DIR\fR\&. This option does not chroot and is intended for preparing a cross\-compilation target\&. Some limitations: NIS and LDAP users/groups are not verified\&. PAM authentication is using the host files\&. No SELINUX support\&.
|
||||
\fIPREFIX_DIR\fR\&. This option does not chroot and is intended for preparing a cross\-compilation target\&. Some limitations: NIS and LDAP users/groups are not verified\&. No SELINUX support\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB\-W\fR, \fB\-\-warndays\fR\ \&\fIWARN_DAYS\fR
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: chfn
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "CHFN" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "CHFN" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: chsh
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "CHSH" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "CHSH" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: expiry
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "EXPIRY" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "EXPIRY" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: gpasswd
|
||||
.\" Author: Rafal Maszkowski
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "GPASSWD" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "GPASSWD" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: login
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "LOGIN" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "LOGIN" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: newgrp
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "NEWGRP" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "NEWGRP" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: passwd
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "PASSWD" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "PASSWD" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
@@ -63,7 +63,7 @@ Die unbedachte Auswahl von oder der sorglose Umgang mit ihnen macht Passw\(:orte
|
||||
.PP
|
||||
As a general guideline, passwords should be long and random\&. It\*(Aqs fine to use simple character sets, such as passwords consisting only of lowercase letters, if that helps memorizing longer passwords\&. For a password consisting only of lowercase English letters randomly chosen, and a length of 32, there are 26^32 (approximately 2^150) different possible combinations\&. Being an exponential equation, it\*(Aqs apparent that the exponent (the length) is more important than the base (the size of the character set)\&.
|
||||
.PP
|
||||
Ratschl\(:age, wie Sie ein sicheres Passwort w\(:ahlen, finden Sie unter http://de\&.wikipedia\&.org/wiki/Passwort#Wahl_von_sicheren_Passw%C3%B6rter \&.
|
||||
You can find advice on how to choose a strong password on https://en\&.wikipedia\&.org/wiki/Password_strength
|
||||
.SH "OPTIONEN"
|
||||
.PP
|
||||
The options which apply to the
|
||||
@@ -145,7 +145,7 @@ directory\&. Only absolute paths are supported\&.
|
||||
\fB\-P\fR, \fB\-\-prefix\fR\ \&\fIPREFIX_DIR\fR
|
||||
.RS 4
|
||||
Apply changes to configuration files under the root filesystem found under the directory
|
||||
\fIPREFIX_DIR\fR\&. This option does not chroot and is intended for preparing a cross\-compilation target\&. Some limitations: NIS and LDAP users/groups are not verified\&. PAM authentication is using the host files\&. No SELINUX support\&.
|
||||
\fIPREFIX_DIR\fR\&. This option does not chroot and is intended for preparing a cross\-compilation target\&. Some limitations: NIS and LDAP users/groups are not verified\&. No PAM support\&. No SELINUX support\&.
|
||||
.RE
|
||||
.PP
|
||||
\fB\-S\fR, \fB\-\-status\fR
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: sg
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "SG" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "SG" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: su
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: User Commands
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "SU" "1" "25.12.2024" "shadow\-utils 4\&.17\&.0" "User Commands"
|
||||
.TH "SU" "1" "24.02.2025" "shadow\-utils 4\&.17\&.3" "User Commands"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: shadow
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: Library Calls
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "SHADOW" "3" "25.12.2024" "shadow\-utils 4\&.17\&.0" "Library Calls"
|
||||
.TH "SHADOW" "3" "24.02.2025" "shadow\-utils 4\&.17\&.3" "Library Calls"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" Title: faillog
|
||||
.\" Author: Julianne Frances Haugh
|
||||
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
|
||||
.\" Date: 25.12.2024
|
||||
.\" Date: 24.02.2025
|
||||
.\" Manual: File Formats and Configuration Files
|
||||
.\" Source: shadow-utils 4.17.0
|
||||
.\" Source: shadow-utils 4.17.3
|
||||
.\" Language: German
|
||||
.\"
|
||||
.TH "FAILLOG" "5" "25.12.2024" "shadow\-utils 4\&.17\&.0" "File Formats and Configuratio"
|
||||
.TH "FAILLOG" "5" "24.02.2025" "shadow\-utils 4\&.17\&.3" "File Formats and Configuratio"
|
||||
.\" -----------------------------------------------------------------
|
||||
.\" * Define some portability stuff
|
||||
.\" -----------------------------------------------------------------
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user