Fix for broken handling off BusyBox's own pwd/grp implementations
authorRobert Griebl <griebl@gmx.de>
Tue, 4 Jun 2002 20:10:23 +0000 (20:10 -0000)
committerRobert Griebl <griebl@gmx.de>
Tue, 4 Jun 2002 20:10:23 +0000 (20:10 -0000)
[Parts of this patch may overlap with my other two patches]

12 files changed:
debianutils/start_stop_daemon.c
include/grp.h
include/pwd.h
include/shadow.h [new file with mode: 0644]
init/start_stop_daemon.c
libbb/my_getgrgid.c
libbb/my_getgrnam.c
libbb/my_getpwnam.c
libbb/my_getpwnamegid.c
libbb/my_getpwuid.c
networking/netstat.c
shell/ash.c

index ed4503caf31c346387c806d7a04703376658d345..29e3d86732ad72c855fe36a0ad3a7ca64c5d7137 100644 (file)
@@ -16,9 +16,9 @@
 #include <sys/stat.h>
 #include <dirent.h>
 #include <unistd.h>
-#include "pwd.h"
 
 #include "busybox.h"
+#include "pwd.h"
 
 static int start = 0;
 static int stop = 0;
index 191c2d4e5fe902b8a73e6d152dd3ad1a86fb0cf9..12fecd02eb59d4711e2c724fc6d3f8c01077876e 100644 (file)
@@ -1,14 +1,16 @@
 #ifndef        __CONFIG_GRP_H
 #define        __CONFIG_GRP_H
 
-#if defined USE_SYSTEM_PWD_GRP
-#include <grp.h>
+#if !defined CONFIG_USE_BB_PWD_GRP
+#include_next <grp.h>
+
 #else
 
 #include <sys/types.h>
 #include <features.h>
 #include <stdio.h>
 
+
 /* The group structure */
 struct group
 {
index 2fd0ab06e23408d19d86d738202016017a957b48..178e9e97a075b0ca8597dcccec3c7ae120e6f6c5 100644 (file)
@@ -1,8 +1,9 @@
 #ifndef        __CONFIG_PWD_H
 #define        __CONFIG_PWD_H
 
-#if defined USE_SYSTEM_PWD_GRP
-#include <pwd.h>
+#if !defined CONFIG_USE_BB_PWD_GRP
+#include_next <pwd.h>
+
 #else
 
 #include <sys/types.h>
diff --git a/include/shadow.h b/include/shadow.h
new file mode 100644 (file)
index 0000000..44e4b58
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright 1988 - 1994, Julianne Frances Haugh <jockgrrl@austin.rr.com>
+ * 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.
+ */
+
+#ifndef        __CONFIG_SHADOW_H
+#define        __CONFIG_SHADOW_H
+
+#if !defined CONFIG_USE_BB_SHADOW
+#include_next <shadow.h>
+
+#else
+
+/*
+ * This information is not derived from AT&T licensed sources.  Posted
+ * to the USENET 11/88, and updated 11/90 with information from SVR4.
+ *
+ *     $Id: shadow.h,v 1.1 2002/06/04 20:10:10 sandman Exp $
+ */
+
+typedef long sptime;
+
+/*
+ * Shadow password security file structure.
+ */
+
+struct spwd {
+       char *sp_namp;                          /* login name */
+       char *sp_pwdp;                          /* encrypted password */
+       sptime sp_lstchg;                       /* date of last change */
+       sptime sp_min;                          /* minimum number of days between changes */
+       sptime sp_max;                          /* maximum number of days between changes */
+       sptime sp_warn;                         /* number of days of warning before password
+                                                                  expires */
+       sptime sp_inact;                        /* number of days after password expires
+                                                                  until the account becomes unusable. */
+       sptime sp_expire;                       /* days since 1/1/70 until account expires */
+       unsigned long sp_flag;          /* reserved for future use */
+};
+
+/*
+ * Shadow password security file functions.
+ */
+
+#include <stdio.h>                             /* for FILE */
+
+struct spwd *getspent(void);
+struct spwd *sgetspent(const char *);
+struct spwd *fgetspent(FILE *);
+void setspent(void);
+void endspent(void);
+int putspent(const struct spwd *, FILE *);
+struct spwd *getspnam(const char *name);
+
+#endif                                                 /* CONFIG_USE_BB_SHADOW */
+
+#endif                                                 /* __CONFIG_SHADOW_H */
index ed4503caf31c346387c806d7a04703376658d345..29e3d86732ad72c855fe36a0ad3a7ca64c5d7137 100644 (file)
@@ -16,9 +16,9 @@
 #include <sys/stat.h>
 #include <dirent.h>
 #include <unistd.h>
-#include "pwd.h"
 
 #include "busybox.h"
+#include "pwd.h"
 
 static int start = 0;
 static int stop = 0;
index 27b67192210f5b9f31b2d81aeb39446a720b99a8..bf2067e468bbb6eb42ace3fd8890cfaddc507795 100644 (file)
@@ -21,9 +21,9 @@
 
 #include <stdio.h>
 #include <string.h>
+#include "libbb.h"
 #include "pwd.h"
 #include "grp.h"
-#include "libbb.h"
 
 
 /* gets a groupname given a gid */
index dbacf5192bc9065ac664cfaad2a79d3d594860fe..f21d482c6a9cacfd4d07afdd93c6cf5ca1250f1d 100644 (file)
@@ -21,9 +21,9 @@
 
 #include <stdio.h>
 #include <string.h>
+#include "libbb.h"
 #include "pwd.h"
 #include "grp.h"
-#include "libbb.h"
 
 
 /* returns a gid given a group name */
index 90277040e849cbe9a9ac7e0d4d88fd69c4d60818..db7f4a65fa539a6fef9123d1e7aa7a934601a073 100644 (file)
@@ -21,9 +21,9 @@
 
 #include <stdio.h>
 #include <string.h>
+#include "libbb.h"
 #include "pwd.h"
 #include "grp.h"
-#include "libbb.h"
 
 
 /* returns a uid given a username */
index 9c45580b58b057c232285769544dfc6f0a1979a2..4866b9717b9afec8f49ce37c9d5be258c520240b 100644 (file)
@@ -21,9 +21,9 @@
 
 #include <stdio.h>
 #include <string.h>
+#include "libbb.h"
 #include "pwd.h"
 #include "grp.h"
-#include "libbb.h"
 
 
 
index 49bc8fb49ef6882149ff8d6ec1f60069fa3b591a..5236c7df3e309571828f7570c4123ef8d35e4144 100644 (file)
@@ -21,9 +21,9 @@
 
 #include <stdio.h>
 #include <string.h>
+#include "libbb.h"
 #include "pwd.h"
 #include "grp.h"
-#include "libbb.h"
 
 
 
index b083b0dd4da526a9d11af8a6aa18eafb0407093d..6e7cc5e7bfda1dd8cc9f6e225dcfe0475c5c8483 100644 (file)
@@ -29,9 +29,9 @@
 #include <sys/stat.h>
 #include <dirent.h>
 #include <unistd.h>
-#include <pwd.h>
 #include "inet_common.h"
 #include "busybox.h"
+#include "pwd.h"
 
 #ifdef CONFIG_ROUTE
 extern void displayroutes(int noresolve, int netstatfmt);
index f3b641d53510609acd6258acdb7f27cfd20fa547..d834cc02a0d29308b1f710cbcdbbbf3512fecddb 100644 (file)
@@ -68,6 +68,7 @@
 #include <sys/times.h>
 #include <sys/types.h>
 #include <sys/wait.h>
+#include "busybox.h"
 #include "pwd.h"
 
 
@@ -82,7 +83,6 @@
 #include <termios.h>
 #endif
 
-#include "busybox.h"
 #include "cmdedit.h"
 
 /*
@@ -12442,7 +12442,7 @@ findvar(struct var **vpp, const char *name)
 /*
  * Copyright (c) 1999 Herbert Xu <herbert@debian.org>
  * This file contains code for the times builtin.
- * $Id: ash.c,v 1.50 2002/05/14 23:22:06 sandman Exp $
+ * $Id: ash.c,v 1.51 2002/06/04 20:10:15 sandman Exp $
  */
 static int timescmd (int argc, char **argv)
 {