Re: libshadow
Patches to shadow enclosed. These are for the build tree rather than the
package, and break compatibility with Linux. Make sure that you compile
without PAM enabled.
--
Matthew Garrett | mjg59@srcf.ucam.org
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/Makefile.in ./Makefile.in
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/Makefile.in Sat Sep 2 19:25:59 2000
+++ ./Makefile.in Fri Feb 15 15:43:03 2002
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -310,51 +310,13 @@
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
+ cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
-commonio.lo commonio.o : commonio.c ../config.h rcsid.h defines.h \
- gshadow_.h commonio.h
-dialchk.lo dialchk.o : dialchk.c ../config.h rcsid.h defines.h \
- gshadow_.h prototypes.h dialup.h dialchk.h
-dialup.lo dialup.o : dialup.c ../config.h rcsid.h prototypes.h defines.h \
- gshadow_.h dialup.h
-encrypt.lo encrypt.o : encrypt.c ../config.h rcsid.h prototypes.h \
- defines.h gshadow_.h
-fputsx.lo fputsx.o : fputsx.c ../config.h defines.h gshadow_.h rcsid.h
-getdef.lo getdef.o : getdef.c ../config.h rcsid.h prototypes.h defines.h \
- gshadow_.h getdef.h
-getpass.lo getpass.o : getpass.c ../config.h rcsid.h defines.h \
- gshadow_.h getdef.h
-groupio.lo groupio.o : groupio.c ../config.h rcsid.h prototypes.h \
- defines.h gshadow_.h commonio.h groupio.h
-gshadow.lo gshadow.o : gshadow.c ../config.h rcsid.h prototypes.h \
- defines.h gshadow_.h
-lockpw.lo lockpw.o : lockpw.c ../config.h
-port.lo port.o : port.c ../config.h rcsid.h defines.h gshadow_.h port.h
-putgrent.lo putgrent.o : putgrent.c ../config.h prototypes.h defines.h \
- gshadow_.h
-pwauth.lo pwauth.o : pwauth.c ../config.h rcsid.h prototypes.h defines.h \
- gshadow_.h pwauth.h getdef.h
-pwio.lo pwio.o : pwio.c ../config.h rcsid.h prototypes.h defines.h \
- gshadow_.h commonio.h pwio.h
-rad64.lo rad64.o : rad64.c ../config.h rcsid.h
-sgetgrent.lo sgetgrent.o : sgetgrent.c ../config.h rcsid.h defines.h \
- gshadow_.h
-sgetpwent.lo sgetpwent.o : sgetpwent.c ../config.h rcsid.h defines.h \
- gshadow_.h
-sgroupio.lo sgroupio.o : sgroupio.c ../config.h rcsid.h prototypes.h \
- defines.h gshadow_.h commonio.h sgroupio.h
-shadowio.lo shadowio.o : shadowio.c ../config.h rcsid.h prototypes.h \
- defines.h gshadow_.h commonio.h shadowio.h
-shadow.lo shadow.o : shadow.c ../config.h
-tcfsio.lo tcfsio.o : tcfsio.c ../config.h
-utent.lo utent.o : utent.c ../config.h
-
info-am:
info: info-am
dvi-am:
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/commonio.c ./commonio.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/commonio.c Sat Feb 2 01:54:01 2002
+++ ./commonio.c Fri Feb 15 15:42:35 2002
@@ -12,6 +12,7 @@
#include <stdio.h>
#include <signal.h>
#include <pwd.h>
+#include <util.h>
#ifdef HAVE_SHADOW_H
#include <shadow.h>
#endif
@@ -27,6 +28,7 @@
static void add_one_entry(struct commonio_db *, struct commonio_entry *);
static int name_is_nis(const char *);
static int write_all(const struct commonio_db *);
+static int grpwrite_all(const struct commonio_db *);
static struct commonio_entry *find_entry_by_name(struct commonio_db *, const char *);
static int lock_count = 0;
@@ -56,7 +58,7 @@
int retval;
char buf[32];
- if ((fd = open(file, O_CREAT|O_EXCL|O_WRONLY, 0600)) == -1)
+ if ((fd = open(file, O_CREAT|O_WRONLY, 0600)) == -1)
return 0;
pid = getpid();
@@ -529,19 +531,28 @@
{
const struct commonio_entry *p;
void *eptr;
-
+ FILE *fh;
+ int fd;
+ fd=pw_lock(0);
+ if(fd==-1) {
+ return -1;
+ }
+ fh=fdopen(fd,"w");
for (p = db->head; p; p = p->next) {
if (p->changed) {
eptr = p->eptr;
- if (db->ops->put(eptr, db->fp))
+ if (db->ops->put(eptr, fh))
return -1;
} else if (p->line) {
- if (db->ops->fputs(p->line, db->fp) == EOF)
+ if (db->ops->fputs(p->line, fh) == EOF)
return -1;
- if (putc('\n', db->fp) == EOF)
+ if (putc('\n', fh) == EOF)
return -1;
}
}
+ fclose(fh);
+ if (pw_mkdb() <0)
+ pw_error((char *)NULL, 0, 1);
return 0;
}
@@ -598,25 +609,25 @@
sb.st_gid = 0;
}
- snprintf(buf, sizeof buf, "%s+", db->filename);
-
- db->fp = fopen_set_perms(buf, "w", &sb);
- if (!db->fp)
- goto fail;
+// snprintf(buf, sizeof buf, "%s+", db->filename);
+//
+// db->fp = fopen_set_perms(buf, "w", &sb);
+// if (!db->fp)
+// goto fail;
if (write_all(db))
errors++;
- if (fflush(db->fp))
- errors++;
+// if (fflush(db->fp))
+// errors++;
#ifdef HAVE_FSYNC
- if (fsync(fileno(db->fp)))
- errors++;
+// if (fsync(fileno(db->fp)))
+// errors++;
#else
sync();
#endif
- if (fclose(db->fp))
- errors++;
+// if (fclose(db->fp))
+// errors++;
db->fp = NULL;
@@ -625,9 +636,6 @@
goto fail;
}
- if (rename(buf, db->filename))
- goto fail;
-
nscd_need_reload = 1;
success:
@@ -803,3 +811,147 @@
}
return NULL;
}
+
+/* Duplicate functions so that we can still write group files properly */
+
+int
+grpcommonio_close(struct commonio_db *db)
+{
+ char buf[1024];
+ int errors = 0;
+ struct stat sb;
+
+ if (!db->isopen) {
+ errno = EINVAL;
+ return 0;
+ }
+ db->isopen = 0;
+
+ if (!db->changed || db->readonly) {
+ fclose(db->fp);
+ db->fp = NULL;
+ goto success;
+ }
+
+ memzero(&sb, sizeof sb);
+ if (db->fp) {
+ if (fstat(fileno(db->fp), &sb)) {
+ fclose(db->fp);
+ db->fp = NULL;
+ goto fail;
+ }
+
+ /*
+ * Create backup file.
+ */
+ snprintf(buf, sizeof buf, "%s-", db->filename);
+
+ if (create_backup(buf, db->fp))
+ errors++;
+
+ if (fclose(db->fp))
+ errors++;
+
+ if (errors) {
+ db->fp = NULL;
+ goto fail;
+ }
+ } else {
+ /*
+ * Default permissions for new [g]shadow files.
+ * (passwd and group always exist...)
+ */
+ sb.st_mode = 0400;
+ sb.st_uid = 0;
+ sb.st_gid = 0;
+ }
+
+ snprintf(buf, sizeof buf, "%s+", db->filename);
+
+ db->fp = fopen_set_perms(buf, "w", &sb);
+ if (!db->fp)
+ goto fail;
+
+ if (grpwrite_all(db))
+ errors++;
+
+ if (fflush(db->fp))
+ errors++;
+#ifdef HAVE_FSYNC
+ if (fsync(fileno(db->fp)))
+ errors++;
+#else
+ sync();
+#endif
+ if (fclose(db->fp))
+ errors++;
+
+ db->fp = NULL;
+
+ if (errors) {
+ unlink(buf);
+ goto fail;
+ }
+
+ if (rename(buf, db->filename))
+ goto fail;
+
+ nscd_need_reload = 1;
+
+success:
+ free_linked_list(db);
+ return 1;
+
+fail:
+ free_linked_list(db);
+ return 0;
+}
+
+int
+grpcommonio_unlock(struct commonio_db *db)
+{
+ char lock[1024];
+
+ if (db->isopen) {
+ db->readonly = 1;
+ if (!grpcommonio_close(db)) {
+ if (db->locked)
+ dec_lock_count();
+ return 0;
+ }
+ }
+ if (db->locked) {
+ /*
+ * Unlock in reverse order: remove the lock file,
+ * then call ulckpwdf() (if used) on last unlock.
+ */
+ db->locked = 0;
+ snprintf(lock, sizeof lock, "%s.lock", db->filename);
+ unlink(lock);
+ dec_lock_count();
+ return 1;
+ }
+ return 0;
+}
+
+static int
+grpwrite_all(const struct commonio_db *db)
+{
+ const struct commonio_entry *p;
+ void *eptr;
+
+ for (p = db->head; p; p = p->next) {
+ if (p->changed) {
+ eptr = p->eptr;
+ if (db->ops->put(eptr, db->fp))
+ return -1;
+ } else if (p->line) {
+ if (db->ops->fputs(p->line, db->fp) == EOF)
+ return -1;
+ if (putc('\n', db->fp) == EOF)
+ return -1;
+ }
+ }
+ return 0;
+}
+
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/commonio.h ./commonio.h
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/commonio.h Sat Sep 2 18:40:43 2000
+++ ./commonio.h Tue Feb 5 17:45:53 2002
@@ -98,3 +98,6 @@
extern int commonio_unlock(struct commonio_db *);
extern void commonio_del_entry(struct commonio_db *, const struct commonio_entry *);
+/* Duplicate entries so we can write groups */
+extern int grpcommonio_close(struct commonio_db *);
+extern int grpcommonio_unlock(struct commonio_db *);
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/defines.h ./defines.h
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/defines.h Sat Sep 2 18:40:43 2000
+++ ./defines.h Sat Jan 19 16:42:14 2002
@@ -290,7 +290,11 @@
#endif
#ifndef PASSWD_FILE
-#define PASSWD_FILE "/etc/passwd"
+#ifdef __NetBSD__
+#define PASSWD_FILE "/etc/master.passwd"
+#else
+define PASSWD_FILE "/etc/passwd"
+#endif
#endif
#ifndef GROUP_FILE
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/groupio.c ./groupio.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/groupio.c Sat Sep 2 18:40:43 2000
+++ ./groupio.c Tue Feb 5 17:50:16 2002
@@ -156,13 +156,13 @@
int
gr_close(void)
{
- return commonio_close(&group_db);
+ return grpcommonio_close(&group_db);
}
int
gr_unlock(void)
{
- return commonio_unlock(&group_db);
+ return grpcommonio_unlock(&group_db);
}
void
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/prototypes.h ./prototypes.h
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/prototypes.h Sat Sep 2 18:07:50 2000
+++ ./prototypes.h Sat Jan 19 17:05:16 2002
@@ -26,6 +26,9 @@
extern int add_groups(const char *);
extern void add_cons_grps(void);
+
+#undef SHADOWPWD
+
/* age.c */
#ifdef SHADOWPWD
extern void agecheck(const struct passwd *, const struct spwd *);
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/putpwent.c ./putpwent.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/putpwent.c Sun Dec 7 23:26:54 1997
+++ ./putpwent.c Sat Jan 19 19:20:02 2002
@@ -55,18 +55,7 @@
p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid,
p->pw_gecos, p->pw_comment, p->pw_dir, p->pw_shell) == EOF;
#else
- status = fprintf (f, "%s:%s", p->pw_name, p->pw_passwd) == EOF;
-#ifdef ATT_AGE
- if (p->pw_age && p->pw_age[0])
- status |= fprintf (f, ",%s", p->pw_age) == EOF;
-#endif
- status |= fprintf (f, ":%d:%d:%s", p->pw_uid, p->pw_gid,
- p->pw_gecos) == EOF;
-#ifdef ATT_COMMENT
- if (p->pw_comment && p->pw_comment[0])
- status |= fprintf (f, ",%s", p->pw_comment) == EOF;
-#endif
- status |= fprintf (f, ":%s:%s\n", p->pw_dir, p->pw_shell) == EOF;
+ status = fprintf (f, "%s:%s:%d:%d:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid, p->pw_class, p->pw_change, p->pw_expire, p->pw_gecos, p->pw_dir, p->pw_shell) == EOF;
#endif
return status;
}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/putpwent.c.orig ./putpwent.c.orig
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/putpwent.c.orig Thu Jan 1 00:00:00 1970
+++ ./putpwent.c.orig Sat Jan 19 17:45:08 2002
@@ -0,0 +1,72 @@
+/*
+ * Copyright 1989 - 1994, Julianne Frances Haugh
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Julianne F. Haugh nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <config.h>
+
+#include "rcsid.h"
+RCSID("$Id: putpwent.c,v 1.3 1997/12/07 23:26:54 marekm Exp $")
+
+#include "defines.h"
+#include <stdio.h>
+#include <pwd.h>
+
+/*
+ * putpwent - Output a (struct passwd) in character format
+ *
+ * putpwent() writes out a (struct passwd) in the format it appears
+ * in in flat ASCII files.
+ *
+ * (Author: Dr. Micheal Newberry)
+ */
+
+int
+putpwent(const struct passwd *p, FILE *f)
+{
+ int status;
+
+#if defined(SUN) || defined(BSD) || defined(SUN4)
+ status = fprintf (f, "%s:%s:%d:%d:%s,%s:%s:%s\n",
+ p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid,
+ p->pw_gecos, p->pw_comment, p->pw_dir, p->pw_shell) == EOF;
+#else
+ status = fprintf (f, "%s:%s", p->pw_name, p->pw_passwd) == EOF;
+#ifdef ATT_AGE
+ if (p->pw_age && p->pw_age[0])
+ status |= fprintf (f, ",%s", p->pw_age) == EOF;
+#endif
+ status |= fprintf (f, ":%d:%d:%s", p->pw_uid, p->pw_gid,
+ p->pw_gecos) == EOF;
+#ifdef ATT_COMMENT
+ if (p->pw_comment && p->pw_comment[0])
+ status |= fprintf (f, ",%s", p->pw_comment) == EOF;
+#endif
+ status |= fprintf (f, ":%s:%s\n", p->pw_dir, p->pw_shell) == EOF;
+#endif
+ return status;
+}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/pwio.c ./pwio.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/pwio.c Sat Sep 2 18:40:43 2000
+++ ./pwio.c Sat Jan 19 18:18:39 2002
@@ -120,7 +120,7 @@
}
int
-pw_lock(void)
+pw_filelock(void)
{
return commonio_lock(&passwd_db);
}
@@ -134,7 +134,8 @@
const struct passwd *
pw_locate(const char *name)
{
- return commonio_locate(&passwd_db, name);
+// return commonio_locate(&passwd_db, name);
+ return getpwnam(name);
}
int
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/lib/pwio.h ./pwio.h
--- /tmp/shadow-20000902/build-tree/shadow-20000902/lib/pwio.h Fri Aug 25 19:18:08 2000
+++ ./pwio.h Sat Jan 19 17:05:43 2002
@@ -2,7 +2,7 @@
extern void __pw_set_changed(void);
extern int pw_close(void);
extern const struct passwd *pw_locate(const char *);
-extern int pw_lock(void);
+extern int pw_filelock(void);
extern int pw_name(const char *);
extern const struct passwd *pw_next(void);
extern int pw_open(int);
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/Makefile.in ./Makefile.in
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/Makefile.in Sat Sep 2 19:26:04 2000
+++ ./Makefile.in Sat Jan 19 16:45:16 2002
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -129,7 +129,7 @@
ubin_PROGRAMS = faillog lastlog chage chfn chsh expiry gpasswd newgrp passwd
-usbin_PROGRAMS = chpasswd dpasswd groupadd groupdel groupmod logoutd mkpasswd newusers useradd userdel usermod grpck pwck vipw grpconv grpunconv pwconv pwunconv
+usbin_PROGRAMS = chpasswd dpasswd groupadd groupdel groupmod logoutd mkpasswd newusers useradd userdel usermod grpck pwck vipw grpconv grpunconv pwconv pwunconv cppw
EXTRA_DIST = shadowconfig.sh
@@ -162,7 +162,7 @@
# chage chfn chsh expiry gpasswd newgrp passwd \
# sulogin
-shlibs = ../lib/libshadow.la
+shlibs = #../lib/libshadow.la
# With glibc2, almost all programs need libcrypt for some reason,
# even those that don't actually use crypt().
LDADD = ${shlibs} ../libmisc/libmisc.a ../lib/libshadow.a @INTLLIBS@ @LIBCRYPT@ @LIBTCFS@ @LIBSKEY@ @LIBMD@
@@ -184,191 +184,164 @@
LIBS = @LIBS@
login_SOURCES = login.c
login_OBJECTS = login.o
-login_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+login_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
login_LDFLAGS =
su_SOURCES = su.c
su_OBJECTS = su.o
-su_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+su_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
su_LDFLAGS =
groups_SOURCES = groups.c
groups_OBJECTS = groups.o
groups_LDADD = $(LDADD)
-groups_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+groups_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
groups_LDFLAGS =
id_SOURCES = id.c
id_OBJECTS = id.o
id_LDADD = $(LDADD)
-id_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+id_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
id_LDFLAGS =
sulogin_SOURCES = sulogin.c
sulogin_OBJECTS = sulogin.o
sulogin_LDADD = $(LDADD)
-sulogin_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+sulogin_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
sulogin_LDFLAGS =
faillog_SOURCES = faillog.c
faillog_OBJECTS = faillog.o
faillog_LDADD = $(LDADD)
-faillog_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+faillog_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
faillog_LDFLAGS =
lastlog_SOURCES = lastlog.c
lastlog_OBJECTS = lastlog.o
lastlog_LDADD = $(LDADD)
-lastlog_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+lastlog_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
lastlog_LDFLAGS =
chage_SOURCES = chage.c
chage_OBJECTS = chage.o
chage_LDADD = $(LDADD)
-chage_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+chage_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
chage_LDFLAGS =
chfn_SOURCES = chfn.c
chfn_OBJECTS = chfn.o
-chfn_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+chfn_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
chfn_LDFLAGS =
chsh_SOURCES = chsh.c
chsh_OBJECTS = chsh.o
-chsh_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+chsh_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
chsh_LDFLAGS =
expiry_SOURCES = expiry.c
expiry_OBJECTS = expiry.o
expiry_LDADD = $(LDADD)
-expiry_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+expiry_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
expiry_LDFLAGS =
gpasswd_SOURCES = gpasswd.c
gpasswd_OBJECTS = gpasswd.o
gpasswd_LDADD = $(LDADD)
-gpasswd_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+gpasswd_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
gpasswd_LDFLAGS =
newgrp_SOURCES = newgrp.c
newgrp_OBJECTS = newgrp.o
newgrp_LDADD = $(LDADD)
-newgrp_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+newgrp_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
newgrp_LDFLAGS =
passwd_SOURCES = passwd.c
passwd_OBJECTS = passwd.o
-passwd_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+passwd_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
passwd_LDFLAGS =
chpasswd_SOURCES = chpasswd.c
chpasswd_OBJECTS = chpasswd.o
chpasswd_LDADD = $(LDADD)
-chpasswd_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+chpasswd_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
chpasswd_LDFLAGS =
dpasswd_SOURCES = dpasswd.c
dpasswd_OBJECTS = dpasswd.o
dpasswd_LDADD = $(LDADD)
-dpasswd_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+dpasswd_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
dpasswd_LDFLAGS =
groupadd_SOURCES = groupadd.c
groupadd_OBJECTS = groupadd.o
groupadd_LDADD = $(LDADD)
-groupadd_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+groupadd_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
groupadd_LDFLAGS =
groupdel_SOURCES = groupdel.c
groupdel_OBJECTS = groupdel.o
groupdel_LDADD = $(LDADD)
-groupdel_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+groupdel_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
groupdel_LDFLAGS =
groupmod_SOURCES = groupmod.c
groupmod_OBJECTS = groupmod.o
groupmod_LDADD = $(LDADD)
-groupmod_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+groupmod_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
groupmod_LDFLAGS =
logoutd_SOURCES = logoutd.c
logoutd_OBJECTS = logoutd.o
logoutd_LDADD = $(LDADD)
-logoutd_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+logoutd_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
logoutd_LDFLAGS =
mkpasswd_SOURCES = mkpasswd.c
mkpasswd_OBJECTS = mkpasswd.o
mkpasswd_LDADD = $(LDADD)
-mkpasswd_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+mkpasswd_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
mkpasswd_LDFLAGS =
newusers_SOURCES = newusers.c
newusers_OBJECTS = newusers.o
newusers_LDADD = $(LDADD)
-newusers_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+newusers_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
newusers_LDFLAGS =
useradd_SOURCES = useradd.c
useradd_OBJECTS = useradd.o
useradd_LDADD = $(LDADD)
-useradd_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+useradd_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
useradd_LDFLAGS =
userdel_SOURCES = userdel.c
userdel_OBJECTS = userdel.o
userdel_LDADD = $(LDADD)
-userdel_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+userdel_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
userdel_LDFLAGS =
usermod_SOURCES = usermod.c
usermod_OBJECTS = usermod.o
usermod_LDADD = $(LDADD)
-usermod_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+usermod_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
usermod_LDFLAGS =
grpck_SOURCES = grpck.c
grpck_OBJECTS = grpck.o
grpck_LDADD = $(LDADD)
-grpck_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+grpck_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
grpck_LDFLAGS =
pwck_SOURCES = pwck.c
pwck_OBJECTS = pwck.o
pwck_LDADD = $(LDADD)
-pwck_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+pwck_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
pwck_LDFLAGS =
vipw_SOURCES = vipw.c
vipw_OBJECTS = vipw.o
vipw_LDADD = $(LDADD)
-vipw_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+vipw_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
vipw_LDFLAGS =
grpconv_SOURCES = grpconv.c
grpconv_OBJECTS = grpconv.o
grpconv_LDADD = $(LDADD)
-grpconv_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+grpconv_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
grpconv_LDFLAGS =
grpunconv_SOURCES = grpunconv.c
grpunconv_OBJECTS = grpunconv.o
grpunconv_LDADD = $(LDADD)
-grpunconv_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+grpunconv_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
grpunconv_LDFLAGS =
pwconv_SOURCES = pwconv.c
pwconv_OBJECTS = pwconv.o
pwconv_LDADD = $(LDADD)
-pwconv_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+pwconv_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
pwconv_LDFLAGS =
pwunconv_SOURCES = pwunconv.c
pwunconv_OBJECTS = pwunconv.o
pwunconv_LDADD = $(LDADD)
-pwunconv_DEPENDENCIES = ../lib/libshadow.la ../libmisc/libmisc.a \
-../lib/libshadow.a
+pwunconv_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
pwunconv_LDFLAGS =
+cppw_SOURCES = cppw.c
+cppw_OBJECTS = cppw.o
+cppw_LDADD = $(LDADD)
+cppw_DEPENDENCIES = ../libmisc/libmisc.a ../lib/libshadow.a
+cppw_LDFLAGS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -383,8 +356,8 @@
TAR = tar
GZIP_ENV = --best
-SOURCES = login.c su.c groups.c id.c sulogin.c faillog.c lastlog.c chage.c chfn.c chsh.c expiry.c gpasswd.c newgrp.c passwd.c chpasswd.c dpasswd.c groupadd.c groupdel.c groupmod.c logoutd.c mkpasswd.c newusers.c useradd.c userdel.c usermod.c grpck.c pwck.c vipw.c grpconv.c grpunconv.c pwconv.c pwunconv.c
-OBJECTS = login.o su.o groups.o id.o sulogin.o faillog.o lastlog.o chage.o chfn.o chsh.o expiry.o gpasswd.o newgrp.o passwd.o chpasswd.o dpasswd.o groupadd.o groupdel.o groupmod.o logoutd.o mkpasswd.o newusers.o useradd.o userdel.o usermod.o grpck.o pwck.o vipw.o grpconv.o grpunconv.o pwconv.o pwunconv.o
+SOURCES = login.c su.c groups.c id.c sulogin.c faillog.c lastlog.c chage.c chfn.c chsh.c expiry.c gpasswd.c newgrp.c passwd.c chpasswd.c dpasswd.c groupadd.c groupdel.c groupmod.c logoutd.c mkpasswd.c newusers.c useradd.c userdel.c usermod.c grpck.c pwck.c vipw.c grpconv.c grpunconv.c pwconv.c pwunconv.c cppw.c
+OBJECTS = login.o su.o groups.o id.o sulogin.o faillog.o lastlog.o chage.o chfn.o chsh.o expiry.o gpasswd.o newgrp.o passwd.o chpasswd.o dpasswd.o groupadd.o groupdel.o groupmod.o logoutd.o mkpasswd.o newusers.o useradd.o userdel.o usermod.o grpck.o pwck.o vipw.o grpconv.o grpunconv.o pwconv.o pwunconv.o cppw.o
all: all-redirect
.SUFFIXES:
@@ -647,6 +620,10 @@
@rm -f pwunconv
$(LINK) $(pwunconv_LDFLAGS) $(pwunconv_OBJECTS) $(pwunconv_LDADD) $(LIBS)
+cppw: $(cppw_OBJECTS) $(cppw_DEPENDENCIES)
+ @rm -f cppw
+ $(LINK) $(cppw_LDFLAGS) $(cppw_OBJECTS) $(cppw_LDADD) $(LIBS)
+
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
@@ -684,106 +661,13 @@
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
+ cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
-chage.o: chage.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
- ../lib/shadowio.h
-chfn.o: chfn.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
- ../lib/getdef.h ../lib/pwauth.h
-chpasswd.o: chpasswd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
- ../lib/shadowio.h
-chsh.o: chsh.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
- ../lib/getdef.h ../lib/pwauth.h
-dpasswd.o: dpasswd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/dialup.h
-expiry.o: expiry.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h
-faillog.o: faillog.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/faillog.h
-gpasswd.o: gpasswd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/groupio.h \
- ../lib/sgroupio.h
-groupadd.o: groupadd.c ../config.h ../lib/rcsid.h ../lib/defines.h \
- ../lib/gshadow_.h ../lib/prototypes.h ../libmisc/chkname.h \
- ../lib/getdef.h ../lib/groupio.h ../lib/sgroupio.h
-groupdel.o: groupdel.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/groupio.h \
- ../lib/sgroupio.h
-groupmod.o: groupmod.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
- ../lib/groupio.h ../lib/sgroupio.h
-groups.o: groups.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h
-grpck.o: grpck.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
- ../lib/commonio.h ../lib/groupio.h ../lib/sgroupio.h
-grpconv.o: grpconv.c ../config.h ../lib/prototypes.h ../lib/defines.h \
- ../lib/gshadow_.h ../lib/groupio.h ../lib/sgroupio.h \
- ../lib/rcsid.h
-grpunconv.o: grpunconv.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/groupio.h \
- ../lib/sgroupio.h
-id.o: id.c ../config.h ../lib/rcsid.h ../lib/defines.h ../lib/gshadow_.h
-lastlog.o: lastlog.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h
-login.o: login.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/faillog.h \
- ../libmisc/failure.h ../lib/pwauth.h ../lib/getdef.h \
- ../lib/dialchk.h
-logoutd.o: logoutd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h
-mkpasswd.o: mkpasswd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h
-newgrp.o: newgrp.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h
-newusers.o: newusers.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h \
- ../lib/pwio.h ../lib/groupio.h ../lib/shadowio.h
-passwd.o: passwd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/pwauth.h \
- ../lib/shadowio.h ../lib/pwio.h ../lib/getdef.h
-pwck.o: pwck.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
- ../lib/commonio.h ../lib/pwio.h ../lib/shadowio.h
-pwconv.o: pwconv.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/pwio.h \
- ../lib/shadowio.h ../lib/getdef.h
-pwunconv.o: pwunconv.c ../config.h ../lib/rcsid.h ../lib/defines.h \
- ../lib/gshadow_.h ../lib/prototypes.h ../lib/pwio.h \
- ../lib/shadowio.h
-sulogin.o: sulogin.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h \
- ../lib/pwauth.h
-su.o: su.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/pwauth.h \
- ../lib/getdef.h
-useradd.o: useradd.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
- ../lib/pwauth.h ../lib/faillog.h ../lib/groupio.h \
- ../lib/sgroupio.h ../lib/pwio.h ../lib/shadowio.h \
- ../lib/getdef.h
-userdel.o: userdel.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../lib/getdef.h \
- ../lib/pwauth.h ../lib/groupio.h ../lib/pwio.h \
- ../lib/shadowio.h ../lib/sgroupio.h
-usermod.o: usermod.c ../config.h ../lib/rcsid.h ../lib/prototypes.h \
- ../lib/defines.h ../lib/gshadow_.h ../libmisc/chkname.h \
- ../lib/faillog.h ../lib/pwauth.h ../lib/getdef.h \
- ../lib/groupio.h ../lib/sgroupio.h ../lib/pwio.h \
- ../lib/shadowio.h
-vipw.o: vipw.c ../config.h ../lib/rcsid.h ../lib/defines.h \
- ../lib/gshadow_.h ../lib/prototypes.h ../lib/pwio.h \
- ../lib/shadowio.h ../lib/groupio.h ../lib/sgroupio.h
-
info-am:
info: info-am
dvi-am:
@@ -889,6 +773,7 @@
done
rm -f $(DESTDIR)$(ubindir)/sg
ln -s newgrp $(DESTDIR)$(ubindir)/sg
+ ln -s cpgr $(DESTDIR)$(ubindir)/cppw
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/chage.c ./chage.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/chage.c Sat Sep 2 18:40:43 2000
+++ ./chage.c Sat Jan 19 18:48:48 2002
@@ -506,7 +506,7 @@
* to the password file entry for the requested user.
*/
/* We don't lock the password file if we are not root */
- if (amroot && !pw_lock()) {
+ if (amroot && !pw_filelock()) {
fprintf(stderr, _("%s: can't lock password file\n"), Prog);
SYSLOG((LOG_ERR, LOCK_FAIL, PASSWD_FILE));
closelog();
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/chfn.c ./chfn.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/chfn.c Sat Sep 2 18:40:43 2000
+++ ./chfn.c Sat Jan 19 18:49:12 2002
@@ -518,7 +518,7 @@
* the password file. Get a lock on the file and open it.
*/
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr, _("Cannot lock the password file; try again later.\n"));
SYSLOG((LOG_WARN, PWDBUSY2));
closelog();
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/chpasswd.c ./chpasswd.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/chpasswd.c Sat Aug 26 18:27:18 2000
+++ ./chpasswd.c Sat Jan 19 18:49:00 2002
@@ -116,7 +116,7 @@
* updated.
*/
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr, _("%s: can't lock password file\n"), Prog);
exit(1);
}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/chsh.c ./chsh.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/chsh.c Sat Sep 2 18:40:43 2000
+++ ./chsh.c Sat Jan 19 18:49:22 2002
@@ -354,7 +354,7 @@
* the password file. Get a lock on the file and open it.
*/
- if (!pw_lock()) {
+ if (!pw_filelock()) {
SYSLOG((LOG_WARN, PWDBUSY2));
closelog();
fprintf(stderr,
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/cppw.c ./cppw.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/cppw.c Sat Feb 2 01:53:37 2002
+++ ./cppw.c Sat Jan 19 18:49:52 2002
@@ -185,7 +185,7 @@
cppwcopy(SHADOW_FILE, in_file, spw_lock, spw_unlock);
else
#endif
- cppwcopy(PASSWD_FILE, in_file, pw_lock, pw_unlock);
+ cppwcopy(PASSWD_FILE, in_file, pw_filelock, pw_unlock);
}
else {
#ifdef SHADOWGRP
Binary files /tmp/shadow-20000902/build-tree/shadow-20000902/src/ktrace.out and ./ktrace.out differ
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/lastlog.c ./lastlog.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/lastlog.c Sat Feb 2 01:53:35 2002
+++ ./lastlog.c Sat Jan 19 18:52:54 2002
@@ -42,8 +42,8 @@
#include "defines.h"
#if HAVE_LASTLOG_H
#include <lastlog.h>
-#else
-#include "lastlog_.h"
+//#else
+//#include "lastlog_.h"
#endif
/*
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/login.c ./login.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/login.c Sat Feb 2 01:54:05 2002
+++ ./login.c Sat Jan 19 18:48:01 2002
@@ -48,8 +48,8 @@
#if HAVE_LASTLOG_H
#include <lastlog.h>
-#else
-#include "lastlog_.h"
+//#else
+//#include "lastlog_.h"
#endif
#include "faillog.h"
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/logoutd.c ./logoutd.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/logoutd.c Sat Feb 2 01:53:40 2002
+++ ./logoutd.c Sat Jan 19 18:55:23 2002
@@ -275,7 +275,7 @@
if ((tty_fd = open (tty_name, O_RDONLY|O_NDELAY)) == -1)
continue;
- vhangup (tty_fd);
+ // vhangup (tty_fd);
close (tty_fd);
#endif /* BSD || SUN || SUN4 */
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/newusers.c ./newusers.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/newusers.c Sat Sep 2 18:02:07 2000
+++ ./newusers.c Sat Jan 19 18:57:19 2002
@@ -55,9 +55,9 @@
#ifdef SHADOWPWD
#include "shadowio.h"
-
static int is_shadow;
#endif
+#undef SHADOWPWD
/* local function prototypes */
static void usage(void);
@@ -271,11 +271,10 @@
* Shadow files are harder since there are zillions of
* things to do ...
*/
-
- if (!is_shadow) {
- update_passwd(pwd, passwd);
- return 0;
- }
+#ifndef SHADOWPWD
+ update_passwd(pwd, passwd);
+ return 0;
+#endif
#ifdef SHADOWPWD
/*
@@ -360,7 +359,7 @@
* be locked right away.
*/
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf (stderr, _("%s: can't lock /etc/passwd.\n"), Prog);
exit (1);
}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/passwd.c ./passwd.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/passwd.c Sat Feb 2 01:53:41 2002
+++ ./passwd.c Sat Jan 19 19:19:20 2002
@@ -58,7 +58,7 @@
#ifndef CHSH_PROGRAM
#define CHSH_PROGRAM "chsh"
#endif
-
+#undef SHADOWPWD
#include <pwd.h>
#ifndef HAVE_USERSEC_H
#ifdef SHADOWPWD
@@ -730,7 +730,7 @@
char *cp;
#endif
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr,
_("Cannot lock the password file; try again later.\n"));
SYSLOG((LOG_WARN, PWDBUSY2));
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwck.c ./pwck.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwck.c Sat Sep 2 18:40:44 2000
+++ ./pwck.c Sat Jan 19 18:50:14 2002
@@ -212,7 +212,7 @@
*/
if (!read_only) {
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr, _("%s: cannot lock file %s\n"),
Prog, pwd_file);
if (optind == argc)
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwconv.c ./pwconv.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwconv.c Sat Aug 26 18:27:18 2000
+++ ./pwconv.c Sat Jan 19 18:50:23 2002
@@ -90,7 +90,7 @@
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr, _("%s: can't lock passwd file\n"), Prog);
fail_exit(E_PWDBUSY);
}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwunconv.c ./pwunconv.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/pwunconv.c Sat Aug 26 18:27:18 2000
+++ ./pwunconv.c Sat Jan 19 18:50:33 2002
@@ -104,7 +104,7 @@
/* shadow not installed, do nothing */
exit(0);
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr, _("%s: can't lock passwd file\n"), Prog);
fail_exit(5);
}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/useradd.c ./useradd.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/useradd.c Sat Feb 2 01:53:36 2002
+++ ./useradd.c Sat Jan 19 18:58:39 2002
@@ -48,8 +48,8 @@
#include "pwauth.h"
#if HAVE_LASTLOG_H
#include <lastlog.h>
-#else
-#include "lastlog_.h"
+//#else
+//#include "lastlog_.h"
#endif
#include "faillog.h"
@@ -513,9 +513,9 @@
} else if (!out_expire && MATCH(buf, EXPIRE)) {
fprintf(ofp, EXPIRE "%s\n", def_expire);
out_expire++;
- }
#endif
- else if (!out_shell && MATCH(buf, SHELL)) {
+ }
+ else if (!out_shell && MATCH(buf, SHELL)) {
fprintf(ofp, SHELL "%s\n", def_shell);
out_shell++;
}
@@ -1416,7 +1416,7 @@
static void
open_files(void)
{
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr, _("%s: unable to lock password file\n"), Prog);
exit(E_PW_UPDATE);
}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/userdel.c ./userdel.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/userdel.c Sat Feb 2 01:53:56 2002
+++ ./userdel.c Sat Jan 19 18:50:51 2002
@@ -364,7 +364,7 @@
static void
open_files(void)
{
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr, _("%s: unable to lock password file\n"), Prog);
exit(E_PW_UPDATE);
}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/usermod.c ./usermod.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/usermod.c Sat Sep 2 18:40:44 2000
+++ ./usermod.c Sat Jan 19 18:59:11 2002
@@ -48,8 +48,8 @@
#include "faillog.h"
#if HAVE_LASTLOG_H
#include <lastlog.h>
-#else
-#include "lastlog_.h"
+//#else
+//#include "lastlog_.h"
#endif
#include "pwauth.h"
#include "getdef.h"
@@ -1261,7 +1261,7 @@
static void
open_files(void)
{
- if (!pw_lock()) {
+ if (!pw_filelock()) {
fprintf(stderr, _("%s: unable to lock password file\n"), Prog);
exit(E_PW_UPDATE);
}
diff -u -N /tmp/shadow-20000902/build-tree/shadow-20000902/src/vipw.c ./vipw.c
--- /tmp/shadow-20000902/build-tree/shadow-20000902/src/vipw.c Sat Aug 26 18:27:19 2000
+++ ./vipw.c Sat Jan 19 18:51:11 2002
@@ -237,7 +237,7 @@
vipwedit(SHADOW_FILE, spw_lock, spw_unlock);
else
#endif
- vipwedit(PASSWD_FILE, pw_lock, pw_unlock);
+ vipwedit(PASSWD_FILE, pw_filelock, pw_unlock);
}
else {
#ifdef SHADOWGRP
Reply to: