summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.in132
-rw-r--r--src/grpunconv.c10
-rw-r--r--src/login.c10
-rw-r--r--src/passwd.c8
-rw-r--r--src/pwconv.c4
-rw-r--r--src/pwunconv.c12
-rw-r--r--src/su.c7
-rw-r--r--src/useradd.c14
-rw-r--r--src/userdel.c16
9 files changed, 122 insertions, 91 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index 9ac0af3..3b5387b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -238,6 +255,11 @@ DIST_SOURCES = chage.c chfn.c chgpasswd.c chpasswd.c chsh.c expiry.c \
lastlog.c $(login_SOURCES) logoutd.c newgrp.c newusers.c \
nologin.c passwd.c pwck.c pwconv.c pwunconv.c $(su_SOURCES) \
sulogin.c useradd.c userdel.c usermod.c vipw.c
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -256,6 +278,7 @@ CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
@@ -301,6 +324,7 @@ LTLIBINTL = @LTLIBINTL@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
@@ -325,7 +349,6 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
-U = @U@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
@@ -340,6 +363,7 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
@@ -372,7 +396,6 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -483,8 +506,11 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \
@@ -535,8 +561,11 @@ clean-noinstPROGRAMS:
rm -f $$list
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \
@@ -578,8 +607,11 @@ clean-sbinPROGRAMS:
rm -f $$list
install-ubinPROGRAMS: $(ubin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(ubindir)" || $(MKDIR_P) "$(DESTDIR)$(ubindir)"
@list='$(ubin_PROGRAMS)'; test -n "$(ubindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(ubindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(ubindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \
@@ -621,8 +653,11 @@ clean-ubinPROGRAMS:
rm -f $$list
install-usbinPROGRAMS: $(usbin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(usbindir)" || $(MKDIR_P) "$(DESTDIR)$(usbindir)"
@list='$(usbin_PROGRAMS)'; test -n "$(usbindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(usbindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(usbindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \
@@ -662,103 +697,103 @@ clean-usbinPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-chage$(EXEEXT): $(chage_OBJECTS) $(chage_DEPENDENCIES)
+chage$(EXEEXT): $(chage_OBJECTS) $(chage_DEPENDENCIES) $(EXTRA_chage_DEPENDENCIES)
@rm -f chage$(EXEEXT)
$(LINK) $(chage_OBJECTS) $(chage_LDADD) $(LIBS)
-chfn$(EXEEXT): $(chfn_OBJECTS) $(chfn_DEPENDENCIES)
+chfn$(EXEEXT): $(chfn_OBJECTS) $(chfn_DEPENDENCIES) $(EXTRA_chfn_DEPENDENCIES)
@rm -f chfn$(EXEEXT)
$(LINK) $(chfn_OBJECTS) $(chfn_LDADD) $(LIBS)
-chgpasswd$(EXEEXT): $(chgpasswd_OBJECTS) $(chgpasswd_DEPENDENCIES)
+chgpasswd$(EXEEXT): $(chgpasswd_OBJECTS) $(chgpasswd_DEPENDENCIES) $(EXTRA_chgpasswd_DEPENDENCIES)
@rm -f chgpasswd$(EXEEXT)
$(LINK) $(chgpasswd_OBJECTS) $(chgpasswd_LDADD) $(LIBS)
-chpasswd$(EXEEXT): $(chpasswd_OBJECTS) $(chpasswd_DEPENDENCIES)
+chpasswd$(EXEEXT): $(chpasswd_OBJECTS) $(chpasswd_DEPENDENCIES) $(EXTRA_chpasswd_DEPENDENCIES)
@rm -f chpasswd$(EXEEXT)
$(LINK) $(chpasswd_OBJECTS) $(chpasswd_LDADD) $(LIBS)
-chsh$(EXEEXT): $(chsh_OBJECTS) $(chsh_DEPENDENCIES)
+chsh$(EXEEXT): $(chsh_OBJECTS) $(chsh_DEPENDENCIES) $(EXTRA_chsh_DEPENDENCIES)
@rm -f chsh$(EXEEXT)
$(LINK) $(chsh_OBJECTS) $(chsh_LDADD) $(LIBS)
-expiry$(EXEEXT): $(expiry_OBJECTS) $(expiry_DEPENDENCIES)
+expiry$(EXEEXT): $(expiry_OBJECTS) $(expiry_DEPENDENCIES) $(EXTRA_expiry_DEPENDENCIES)
@rm -f expiry$(EXEEXT)
$(LINK) $(expiry_OBJECTS) $(expiry_LDADD) $(LIBS)
-faillog$(EXEEXT): $(faillog_OBJECTS) $(faillog_DEPENDENCIES)
+faillog$(EXEEXT): $(faillog_OBJECTS) $(faillog_DEPENDENCIES) $(EXTRA_faillog_DEPENDENCIES)
@rm -f faillog$(EXEEXT)
$(LINK) $(faillog_OBJECTS) $(faillog_LDADD) $(LIBS)
-gpasswd$(EXEEXT): $(gpasswd_OBJECTS) $(gpasswd_DEPENDENCIES)
+gpasswd$(EXEEXT): $(gpasswd_OBJECTS) $(gpasswd_DEPENDENCIES) $(EXTRA_gpasswd_DEPENDENCIES)
@rm -f gpasswd$(EXEEXT)
$(LINK) $(gpasswd_OBJECTS) $(gpasswd_LDADD) $(LIBS)
-groupadd$(EXEEXT): $(groupadd_OBJECTS) $(groupadd_DEPENDENCIES)
+groupadd$(EXEEXT): $(groupadd_OBJECTS) $(groupadd_DEPENDENCIES) $(EXTRA_groupadd_DEPENDENCIES)
@rm -f groupadd$(EXEEXT)
$(LINK) $(groupadd_OBJECTS) $(groupadd_LDADD) $(LIBS)
-groupdel$(EXEEXT): $(groupdel_OBJECTS) $(groupdel_DEPENDENCIES)
+groupdel$(EXEEXT): $(groupdel_OBJECTS) $(groupdel_DEPENDENCIES) $(EXTRA_groupdel_DEPENDENCIES)
@rm -f groupdel$(EXEEXT)
$(LINK) $(groupdel_OBJECTS) $(groupdel_LDADD) $(LIBS)
-groupmems$(EXEEXT): $(groupmems_OBJECTS) $(groupmems_DEPENDENCIES)
+groupmems$(EXEEXT): $(groupmems_OBJECTS) $(groupmems_DEPENDENCIES) $(EXTRA_groupmems_DEPENDENCIES)
@rm -f groupmems$(EXEEXT)
$(LINK) $(groupmems_OBJECTS) $(groupmems_LDADD) $(LIBS)
-groupmod$(EXEEXT): $(groupmod_OBJECTS) $(groupmod_DEPENDENCIES)
+groupmod$(EXEEXT): $(groupmod_OBJECTS) $(groupmod_DEPENDENCIES) $(EXTRA_groupmod_DEPENDENCIES)
@rm -f groupmod$(EXEEXT)
$(LINK) $(groupmod_OBJECTS) $(groupmod_LDADD) $(LIBS)
-groups$(EXEEXT): $(groups_OBJECTS) $(groups_DEPENDENCIES)
+groups$(EXEEXT): $(groups_OBJECTS) $(groups_DEPENDENCIES) $(EXTRA_groups_DEPENDENCIES)
@rm -f groups$(EXEEXT)
$(LINK) $(groups_OBJECTS) $(groups_LDADD) $(LIBS)
-grpck$(EXEEXT): $(grpck_OBJECTS) $(grpck_DEPENDENCIES)
+grpck$(EXEEXT): $(grpck_OBJECTS) $(grpck_DEPENDENCIES) $(EXTRA_grpck_DEPENDENCIES)
@rm -f grpck$(EXEEXT)
$(LINK) $(grpck_OBJECTS) $(grpck_LDADD) $(LIBS)
-grpconv$(EXEEXT): $(grpconv_OBJECTS) $(grpconv_DEPENDENCIES)
+grpconv$(EXEEXT): $(grpconv_OBJECTS) $(grpconv_DEPENDENCIES) $(EXTRA_grpconv_DEPENDENCIES)
@rm -f grpconv$(EXEEXT)
$(LINK) $(grpconv_OBJECTS) $(grpconv_LDADD) $(LIBS)
-grpunconv$(EXEEXT): $(grpunconv_OBJECTS) $(grpunconv_DEPENDENCIES)
+grpunconv$(EXEEXT): $(grpunconv_OBJECTS) $(grpunconv_DEPENDENCIES) $(EXTRA_grpunconv_DEPENDENCIES)
@rm -f grpunconv$(EXEEXT)
$(LINK) $(grpunconv_OBJECTS) $(grpunconv_LDADD) $(LIBS)
-id$(EXEEXT): $(id_OBJECTS) $(id_DEPENDENCIES)
+id$(EXEEXT): $(id_OBJECTS) $(id_DEPENDENCIES) $(EXTRA_id_DEPENDENCIES)
@rm -f id$(EXEEXT)
$(LINK) $(id_OBJECTS) $(id_LDADD) $(LIBS)
-lastlog$(EXEEXT): $(lastlog_OBJECTS) $(lastlog_DEPENDENCIES)
+lastlog$(EXEEXT): $(lastlog_OBJECTS) $(lastlog_DEPENDENCIES) $(EXTRA_lastlog_DEPENDENCIES)
@rm -f lastlog$(EXEEXT)
$(LINK) $(lastlog_OBJECTS) $(lastlog_LDADD) $(LIBS)
-login$(EXEEXT): $(login_OBJECTS) $(login_DEPENDENCIES)
+login$(EXEEXT): $(login_OBJECTS) $(login_DEPENDENCIES) $(EXTRA_login_DEPENDENCIES)
@rm -f login$(EXEEXT)
$(LINK) $(login_OBJECTS) $(login_LDADD) $(LIBS)
-logoutd$(EXEEXT): $(logoutd_OBJECTS) $(logoutd_DEPENDENCIES)
+logoutd$(EXEEXT): $(logoutd_OBJECTS) $(logoutd_DEPENDENCIES) $(EXTRA_logoutd_DEPENDENCIES)
@rm -f logoutd$(EXEEXT)
$(LINK) $(logoutd_OBJECTS) $(logoutd_LDADD) $(LIBS)
-newgrp$(EXEEXT): $(newgrp_OBJECTS) $(newgrp_DEPENDENCIES)
+newgrp$(EXEEXT): $(newgrp_OBJECTS) $(newgrp_DEPENDENCIES) $(EXTRA_newgrp_DEPENDENCIES)
@rm -f newgrp$(EXEEXT)
$(LINK) $(newgrp_OBJECTS) $(newgrp_LDADD) $(LIBS)
-newusers$(EXEEXT): $(newusers_OBJECTS) $(newusers_DEPENDENCIES)
+newusers$(EXEEXT): $(newusers_OBJECTS) $(newusers_DEPENDENCIES) $(EXTRA_newusers_DEPENDENCIES)
@rm -f newusers$(EXEEXT)
$(LINK) $(newusers_OBJECTS) $(newusers_LDADD) $(LIBS)
-nologin$(EXEEXT): $(nologin_OBJECTS) $(nologin_DEPENDENCIES)
+nologin$(EXEEXT): $(nologin_OBJECTS) $(nologin_DEPENDENCIES) $(EXTRA_nologin_DEPENDENCIES)
@rm -f nologin$(EXEEXT)
$(LINK) $(nologin_OBJECTS) $(nologin_LDADD) $(LIBS)
-passwd$(EXEEXT): $(passwd_OBJECTS) $(passwd_DEPENDENCIES)
+passwd$(EXEEXT): $(passwd_OBJECTS) $(passwd_DEPENDENCIES) $(EXTRA_passwd_DEPENDENCIES)
@rm -f passwd$(EXEEXT)
$(LINK) $(passwd_OBJECTS) $(passwd_LDADD) $(LIBS)
-pwck$(EXEEXT): $(pwck_OBJECTS) $(pwck_DEPENDENCIES)
+pwck$(EXEEXT): $(pwck_OBJECTS) $(pwck_DEPENDENCIES) $(EXTRA_pwck_DEPENDENCIES)
@rm -f pwck$(EXEEXT)
$(LINK) $(pwck_OBJECTS) $(pwck_LDADD) $(LIBS)
-pwconv$(EXEEXT): $(pwconv_OBJECTS) $(pwconv_DEPENDENCIES)
+pwconv$(EXEEXT): $(pwconv_OBJECTS) $(pwconv_DEPENDENCIES) $(EXTRA_pwconv_DEPENDENCIES)
@rm -f pwconv$(EXEEXT)
$(LINK) $(pwconv_OBJECTS) $(pwconv_LDADD) $(LIBS)
-pwunconv$(EXEEXT): $(pwunconv_OBJECTS) $(pwunconv_DEPENDENCIES)
+pwunconv$(EXEEXT): $(pwunconv_OBJECTS) $(pwunconv_DEPENDENCIES) $(EXTRA_pwunconv_DEPENDENCIES)
@rm -f pwunconv$(EXEEXT)
$(LINK) $(pwunconv_OBJECTS) $(pwunconv_LDADD) $(LIBS)
-su$(EXEEXT): $(su_OBJECTS) $(su_DEPENDENCIES)
+su$(EXEEXT): $(su_OBJECTS) $(su_DEPENDENCIES) $(EXTRA_su_DEPENDENCIES)
@rm -f su$(EXEEXT)
$(LINK) $(su_OBJECTS) $(su_LDADD) $(LIBS)
-sulogin$(EXEEXT): $(sulogin_OBJECTS) $(sulogin_DEPENDENCIES)
+sulogin$(EXEEXT): $(sulogin_OBJECTS) $(sulogin_DEPENDENCIES) $(EXTRA_sulogin_DEPENDENCIES)
@rm -f sulogin$(EXEEXT)
$(LINK) $(sulogin_OBJECTS) $(sulogin_LDADD) $(LIBS)
-useradd$(EXEEXT): $(useradd_OBJECTS) $(useradd_DEPENDENCIES)
+useradd$(EXEEXT): $(useradd_OBJECTS) $(useradd_DEPENDENCIES) $(EXTRA_useradd_DEPENDENCIES)
@rm -f useradd$(EXEEXT)
$(LINK) $(useradd_OBJECTS) $(useradd_LDADD) $(LIBS)
-userdel$(EXEEXT): $(userdel_OBJECTS) $(userdel_DEPENDENCIES)
+userdel$(EXEEXT): $(userdel_OBJECTS) $(userdel_DEPENDENCIES) $(EXTRA_userdel_DEPENDENCIES)
@rm -f userdel$(EXEEXT)
$(LINK) $(userdel_OBJECTS) $(userdel_LDADD) $(LIBS)
-usermod$(EXEEXT): $(usermod_OBJECTS) $(usermod_DEPENDENCIES)
+usermod$(EXEEXT): $(usermod_OBJECTS) $(usermod_DEPENDENCIES) $(EXTRA_usermod_DEPENDENCIES)
@rm -f usermod$(EXEEXT)
$(LINK) $(usermod_OBJECTS) $(usermod_LDADD) $(LIBS)
-vipw$(EXEEXT): $(vipw_OBJECTS) $(vipw_DEPENDENCIES)
+vipw$(EXEEXT): $(vipw_OBJECTS) $(vipw_DEPENDENCIES) $(EXTRA_vipw_DEPENDENCIES)
@rm -f vipw$(EXEEXT)
$(LINK) $(vipw_OBJECTS) $(vipw_LDADD) $(LIBS)
@@ -927,10 +962,15 @@ uninstall: uninstall-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
diff --git a/src/grpunconv.c b/src/grpunconv.c
index 829f4c8..416b6a5 100644
--- a/src/grpunconv.c
+++ b/src/grpunconv.c
@@ -37,7 +37,7 @@
#include <config.h>
-#ident "$Id: grpunconv.c 3640 2011-11-19 21:51:52Z nekral-guest $"
+#ident "$Id: grpunconv.c 3726 2012-05-18 19:32:32Z nekral-guest $"
#include <stdio.h>
#include <stdlib.h>
@@ -205,13 +205,7 @@ int main (int argc, char **argv)
}
}
- if (sgr_close () == 0) {
- fprintf (stderr,
- _("%s: failure while writing changes to %s\n"),
- Prog, sgr_dbname ());
- SYSLOG ((LOG_ERR, "failure while writing changes to %s", sgr_dbname ()));
- fail_exit (3);
- }
+ (void) sgr_close (); /* was only open O_RDONLY */
if (gr_close () == 0) {
fprintf (stderr,
diff --git a/src/login.c b/src/login.c
index fe628de..2e5f65e 100644
--- a/src/login.c
+++ b/src/login.c
@@ -2,7 +2,7 @@
* Copyright (c) 1989 - 1994, Julianne Frances Haugh
* Copyright (c) 1996 - 2001, Marek Michałkiewicz
* Copyright (c) 2001 - 2006, Tomasz Kłoczko
- * Copyright (c) 2007 - 2011, Nicolas François
+ * Copyright (c) 2007 - 2012, Nicolas François
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -32,7 +32,7 @@
#include <config.h>
-#ident "$Id: login.c 3549 2011-11-06 18:38:51Z nekral-guest $"
+#ident "$Id: login.c 3743 2012-05-25 11:51:53Z nekral-guest $"
#include <errno.h>
#include <grp.h>
@@ -126,12 +126,10 @@ static void usage (void);
static void setup_tty (void);
static void process_flags (int argc, char *const *argv);
static /*@observer@*/const char *get_failent_user (/*@returned@*/const char *user);
-#ifndef USE_PAM
static void update_utmp (const char *user,
const char *tty,
const char *host,
/*@null@*/const struct utmp *utent);
-#endif /* ! USE_PAM */
#ifndef USE_PAM
static struct faillog faillog;
@@ -473,7 +471,6 @@ static /*@observer@*/const char *get_failent_user (/*@returned@*/const char *use
return failent_user;
}
-#ifndef USE_PAM
/*
* update_utmp - Update or create an utmp entry in utmp, wtmp, utmpw, and
* wtmpx
@@ -499,7 +496,6 @@ static void update_utmp (const char *user,
free (utx);
#endif /* USE_UTMPX */
}
-#endif /* ! USE_PAM */
/*
* login - create a new login session for a user
@@ -1215,13 +1211,11 @@ int main (int argc, char **argv)
}
}
-#ifndef USE_PAM
/*
* The utmp entry needs to be updated to indicate the new status
* of the session, the new PID and SID.
*/
update_utmp (username, tty, hostname, utent);
-#endif /* ! USE_PAM */
/* The pwd and spwd entries for the user have been copied.
*
diff --git a/src/passwd.c b/src/passwd.c
index 37b898d..8e566a2 100644
--- a/src/passwd.c
+++ b/src/passwd.c
@@ -32,7 +32,7 @@
#include <config.h>
-#ident "$Id: passwd.c 3643 2011-11-19 22:00:00Z nekral-guest $"
+#ident "$Id: passwd.c 3710 2012-02-13 20:32:00Z nekral-guest $"
#include <errno.h>
#include <fcntl.h>
@@ -1057,6 +1057,12 @@ int main (int argc, char **argv)
*/
sp = getspnam (name); /* !USE_PAM, no need for xgetspnam */
if (NULL == sp) {
+ if (errno == EACCES) {
+ (void) fprintf (stderr,
+ _("%s: Permission denied.\n"),
+ Prog);
+ exit (E_NOPERM);
+ }
sp = pwd_to_spwd (pw);
}
diff --git a/src/pwconv.c b/src/pwconv.c
index 0bbca10..3f059e4 100644
--- a/src/pwconv.c
+++ b/src/pwconv.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 1996 - 2000, Marek Michałkiewicz
* Copyright (c) 2002 - 2006, Tomasz Kłoczko
- * Copyright (c) 2009 - 2011, Nicolas François
+ * Copyright (c) 2009 - 2012, Nicolas François
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -55,7 +55,7 @@
#include <config.h>
-#ident "$Id: pwconv.c 3640 2011-11-19 21:51:52Z nekral-guest $"
+#ident "$Id: pwconv.c 3743 2012-05-25 11:51:53Z nekral-guest $"
#include <errno.h>
#include <fcntl.h>
diff --git a/src/pwunconv.c b/src/pwunconv.c
index 3d24c2f..a706d60 100644
--- a/src/pwunconv.c
+++ b/src/pwunconv.c
@@ -2,7 +2,7 @@
* Copyright (c) 1989 - 1994, Julianne Frances Haugh
* Copyright (c) 1996 - 2000, Marek Michałkiewicz
* Copyright (c) 2001 - 2005, Tomasz Kłoczko
- * Copyright (c) 2008 - 2011, Nicolas François
+ * Copyright (c) 2008 - 2012, Nicolas François
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -32,7 +32,7 @@
#include <config.h>
-#ident "$Id: pwunconv.c 3640 2011-11-19 21:51:52Z nekral-guest $"
+#ident "$Id: pwunconv.c 3743 2012-05-25 11:51:53Z nekral-guest $"
#include <fcntl.h>
#include <pwd.h>
@@ -221,13 +221,7 @@ int main (int argc, char **argv)
}
}
- if (spw_close () == 0) {
- fprintf (stderr,
- _("%s: failure while writing changes to %s\n"),
- Prog, spw_dbname ());
- SYSLOG ((LOG_ERR, "failure while writing changes to %s", spw_dbname ()));
- fail_exit (3);
- }
+ (void) spw_close (); /* was only open O_RDONLY */
if (pw_close () == 0) {
fprintf (stderr,
diff --git a/src/su.c b/src/su.c
index d719011..d604faa 100644
--- a/src/su.c
+++ b/src/su.c
@@ -2,7 +2,7 @@
* Copyright (c) 1989 - 1994, Julianne Frances Haugh
* Copyright (c) 1996 - 2000, Marek Michałkiewicz
* Copyright (c) 2000 - 2006, Tomasz Kłoczko
- * Copyright (c) 2007 - 2011, Nicolas François
+ * Copyright (c) 2007 - 2012, Nicolas François
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,7 +53,7 @@
#include <config.h>
-#ident "$Id: su.c 3560 2011-11-06 18:39:59Z nekral-guest $"
+#ident "$Id: su.c 3743 2012-05-25 11:51:53Z nekral-guest $"
#include <getopt.h>
#include <grp.h>
@@ -1092,6 +1092,9 @@ int main (int argc, char **argv)
if (fd >= 0) {
err = ioctl (fd, TIOCNOTTY, (char *) 0);
(void) close (fd);
+ } else if (ENXIO == errno) {
+ /* There are no controlling terminal already */
+ err = 0;
}
#endif /* USE_PAM */
diff --git a/src/useradd.c b/src/useradd.c
index 4fdb29c..bfddfc6 100644
--- a/src/useradd.c
+++ b/src/useradd.c
@@ -2,7 +2,7 @@
* Copyright (c) 1991 - 1994, Julianne Frances Haugh
* Copyright (c) 1996 - 2000, Marek Michałkiewicz
* Copyright (c) 2000 - 2006, Tomasz Kłoczko
- * Copyright (c) 2007 - 2011, Nicolas François
+ * Copyright (c) 2007 - 2012, Nicolas François
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -32,7 +32,7 @@
#include <config.h>
-#ident "$Id: useradd.c 3650 2011-11-21 22:02:15Z nekral-guest $"
+#ident "$Id: useradd.c 3743 2012-05-25 11:51:53Z nekral-guest $"
#include <assert.h>
#include <ctype.h>
@@ -167,8 +167,7 @@ static bool home_added = false;
#define E_NAME_IN_USE 9 /* username already in use */
#define E_GRP_UPDATE 10 /* can't update group file */
#define E_HOMEDIR 12 /* can't create home directory */
-#define E_MAIL_SPOOL 13 /* can't create mail spool */
-#define E_SE_UPDATE 14 /* can't update SELinux user mapping */
+#define E_SE_UPDATE 14 /* can't update SELinux user mapping */
#define DGROUP "GROUP="
#define DHOME "HOME="
@@ -557,11 +556,12 @@ static int set_defaults (void)
*/
wlen = snprintf (buf, sizeof buf, "%s-", USER_DEFAULTS_FILE);
assert (wlen < (int) sizeof buf);
- if ((rename (USER_DEFAULTS_FILE, buf) != 0) && (ENOENT != errno)) {
+ unlink (buf);
+ if ((link (USER_DEFAULTS_FILE, buf) != 0) && (ENOENT != errno)) {
int err = errno;
fprintf (stderr,
- _("%s: rename: %s: %s\n"),
- Prog, USER_DEFAULTS_FILE, strerror (err));
+ _("%s: Cannot create backup file (%s): %s\n"),
+ Prog, buf, strerror (err));
unlink (new_file);
return -1;
}
diff --git a/src/userdel.c b/src/userdel.c
index 0eb2289..4439f62 100644
--- a/src/userdel.c
+++ b/src/userdel.c
@@ -2,7 +2,7 @@
* Copyright (c) 1991 - 1994, Julianne Frances Haugh
* Copyright (c) 1996 - 2000, Marek Michałkiewicz
* Copyright (c) 2000 - 2006, Tomasz Kłoczko
- * Copyright (c) 2007 - 2011, Nicolas François
+ * Copyright (c) 2007 - 2012, Nicolas François
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -32,7 +32,7 @@
#include <config.h>
-#ident "$Id: userdel.c 3640 2011-11-19 21:51:52Z nekral-guest $"
+#ident "$Id: userdel.c 3743 2012-05-25 11:51:53Z nekral-guest $"
#include <errno.h>
#include <fcntl.h>
@@ -333,22 +333,22 @@ static void remove_usergroup (void)
* We can remove this group, it is not the primary
* group of any remaining user.
*/
- if (gr_remove (grp->gr_name) == 0) {
+ if (gr_remove (user_name) == 0) {
fprintf (stderr,
_("%s: cannot remove entry '%s' from %s\n"),
- Prog, grp->gr_name, gr_dbname ());
+ Prog, user_name, gr_dbname ());
fail_exit (E_GRP_UPDATE);
}
#ifdef WITH_AUDIT
audit_logger (AUDIT_DEL_GROUP, Prog,
"deleting group",
- grp->gr_name, AUDIT_NO_ID,
+ user_name, AUDIT_NO_ID,
SHADOW_AUDIT_SUCCESS);
#endif /* WITH_AUDIT */
SYSLOG ((LOG_INFO,
"removed group '%s' owned by '%s'\n",
- grp->gr_name, user_name));
+ user_name, user_name));
#ifdef SHADOWGRP
if (sgr_locate (user_name) != NULL) {
@@ -361,12 +361,12 @@ static void remove_usergroup (void)
#ifdef WITH_AUDIT
audit_logger (AUDIT_DEL_GROUP, Prog,
"deleting shadow group",
- grp->gr_name, AUDIT_NO_ID,
+ user_name, AUDIT_NO_ID,
SHADOW_AUDIT_SUCCESS);
#endif /* WITH_AUDIT */
SYSLOG ((LOG_INFO,
"removed shadow group '%s' owned by '%s'\n",
- grp->gr_name, user_name));
+ user_name, user_name));
}
#endif /* SHADOWGRP */