diff -urpN busybox.0/include/grp_.h busybox.1/include/grp_.h --- busybox.0/include/grp_.h 2006-10-06 16:44:06.000000000 +0200 +++ busybox.1/include/grp_.h 2006-10-06 16:55:40.000000000 +0200 @@ -34,6 +34,8 @@ #include #include +#include "remap_names.h" + /* The group structure. */ struct group { @@ -74,27 +76,27 @@ extern struct group *getgrnam (__const c other reentrant functions so the chances are good this is what the POSIX people would choose. */ -extern int getgrent_r (struct group *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct group **__restrict __result); - -/* Search for an entry with a matching group ID. */ -extern int getgrgid_r (gid_t __gid, struct group *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct group **__restrict __result); - -/* Search for an entry with a matching group name. */ -extern int getgrnam_r (__const char *__restrict __name, - struct group *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct group **__restrict __result); - -/* Read a group entry from STREAM. This function is not standardized - an probably never will. */ -extern int fgetgrent_r (FILE *__restrict __stream, - struct group *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct group **__restrict __result); +////extern int getgrent_r (struct group *__restrict __resultbuf, +//// char *__restrict __buffer, size_t __buflen, +//// struct group **__restrict __result); +//// +/////* Search for an entry with a matching group ID. */ +////extern int getgrgid_r (gid_t __gid, struct group *__restrict __resultbuf, +//// char *__restrict __buffer, size_t __buflen, +//// struct group **__restrict __result); +//// +/////* Search for an entry with a matching group name. */ +////extern int getgrnam_r (__const char *__restrict __name, +//// struct group *__restrict __resultbuf, +//// char *__restrict __buffer, size_t __buflen, +//// struct group **__restrict __result); +//// +/////* Read a group entry from STREAM. This function is not standardized +//// an probably never will. */ +////extern int fgetgrent_r (FILE *__restrict __stream, +//// struct group *__restrict __resultbuf, +//// char *__restrict __buffer, size_t __buflen, +//// struct group **__restrict __result); /* Set the group set for the current user to GROUPS (N of them). */ extern int setgroups (size_t __n, __const gid_t *__groups); diff -urpN busybox.0/include/pwd_.h busybox.1/include/pwd_.h --- busybox.0/include/pwd_.h 2006-10-06 16:44:06.000000000 +0200 +++ busybox.1/include/pwd_.h 2006-10-06 16:55:42.000000000 +0200 @@ -33,6 +33,8 @@ #include #include +#include "remap_names.h" + /* The passwd structure. */ struct passwd { @@ -76,27 +78,27 @@ extern struct passwd *getpwnam (__const other reentrant functions so the chances are good this is what the POSIX people would choose. */ -extern int getpwent_r (struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); - -extern int getpwuid_r (uid_t __uid, - struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); - -extern int getpwnam_r (__const char *__restrict __name, - struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); - - -/* Read an entry from STREAM. This function is not standardized and - probably never will. */ -extern int fgetpwent_r (FILE *__restrict __stream, - struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); +//// extern int getpwent_r (struct passwd *__restrict __resultbuf, +//// char *__restrict __buffer, size_t __buflen, +//// struct passwd **__restrict __result); +//// +//// extern int getpwuid_r (uid_t __uid, +//// struct passwd *__restrict __resultbuf, +//// char *__restrict __buffer, size_t __buflen, +//// struct passwd **__restrict __result); +//// +//// extern int getpwnam_r (__const char *__restrict __name, +//// struct passwd *__restrict __resultbuf, +//// char *__restrict __buffer, size_t __buflen, +//// struct passwd **__restrict __result); +//// +//// +//// /* Read an entry from STREAM. This function is not standardized and +//// probably never will. */ +//// extern int fgetpwent_r (FILE *__restrict __stream, +//// struct passwd *__restrict __resultbuf, +//// char *__restrict __buffer, size_t __buflen, +//// struct passwd **__restrict __result); /* Re-construct the password-file line for the given uid in the given buffer. This knows the format that the caller diff -urpN busybox.0/include/remap_names.h busybox.1/include/remap_names.h --- busybox.0/include/remap_names.h 1970-01-01 01:00:00.000000000 +0100 +++ busybox.1/include/remap_names.h 2006-10-06 16:55:43.000000000 +0200 @@ -0,0 +1,35 @@ +#define initgroups BB_initgroups +#define getpw BB_getpw +#define putspent BB_putspent +#define putgrent BB_putgrent +#define putpwent BB_putpwent +#define sgetspent BB_sgetspent +#define getspnam BB_getspnam +#define getpwuid BB_getpwuid +#define getpwnam BB_getpwnam +#define getgrnam BB_getgrnam +#define getgrgid BB_getgrgid +#define fgetspent BB_fgetspent +#define fgetpwent BB_fgetpwent +#define fgetgrent BB_fgetgrent +#define getspent BB_getspent +#define getpwent BB_getpwent +#define getgrent BB_getgrent +#define endspent BB_endspent +#define endpwent BB_endpwent +#define endgrent BB_endgrent +#define setspent BB_setspent +#define setpwent BB_setpwent +#define setgrent BB_setgrent +#define getspnam_r BB_getspnam_r +#define getpwnam_r BB_getpwnam_r +#define getgrnam_r BB_getgrnam_r +#define getpwuid_r BB_getpwuid_r +#define getgrgid_r BB_getgrgid_r +#define sgetspent_r BB_sgetspent_r +#define getspent_r BB_getspent_r +#define getpwent_r BB_getpwent_r +#define getgrent_r BB_getgrent_r +#define fgetspent_r BB_fgetspent_r +#define fgetpwent_r BB_fgetpwent_r +#define fgetgrent_r BB_fgetgrent_r diff -urpN busybox.0/include/shadow_.h busybox.1/include/shadow_.h --- busybox.0/include/shadow_.h 2006-10-06 16:44:06.000000000 +0200 +++ busybox.1/include/shadow_.h 2006-10-06 16:55:51.000000000 +0200 @@ -28,6 +28,8 @@ #include +#include "remap_names.h" + /* Paths to the user database files. */ #ifndef _PATH_SHADOW #define _PATH_SHADOW "/etc/shadow" @@ -74,21 +76,21 @@ extern struct spwd *fgetspent (FILE *__s /* Write line containing shadow password entry to stream. */ extern int putspent (__const struct spwd *__p, FILE *__stream); -/* Reentrant versions of some of the functions above. */ -extern int getspent_r (struct spwd *__result_buf, char *__buffer, - size_t __buflen, struct spwd **__result); - -extern int getspnam_r (__const char *__name, struct spwd *__result_buf, - char *__buffer, size_t __buflen, - struct spwd **__result); - -extern int sgetspent_r (__const char *__string, struct spwd *__result_buf, - char *__buffer, size_t __buflen, - struct spwd **__result); - -extern int fgetspent_r (FILE *__stream, struct spwd *__result_buf, - char *__buffer, size_t __buflen, - struct spwd **__result); +//// /* Reentrant versions of some of the functions above. */ +//// extern int getspent_r (struct spwd *__result_buf, char *__buffer, +//// size_t __buflen, struct spwd **__result); +//// +//// extern int getspnam_r (__const char *__name, struct spwd *__result_buf, +//// char *__buffer, size_t __buflen, +//// struct spwd **__result); +//// +//// extern int sgetspent_r (__const char *__string, struct spwd *__result_buf, +//// char *__buffer, size_t __buflen, +//// struct spwd **__result); +//// +//// extern int fgetspent_r (FILE *__stream, struct spwd *__result_buf, +//// char *__buffer, size_t __buflen, +//// struct spwd **__result); /* Protect password file against multi writers. */ extern int lckpwdf (void); diff -urpN busybox.0/libpwdgrp/pwd_grp.c busybox.1/libpwdgrp/pwd_grp.c --- busybox.0/libpwdgrp/pwd_grp.c 2006-10-06 16:44:06.000000000 +0200 +++ busybox.1/libpwdgrp/pwd_grp.c 2006-10-06 16:55:52.000000000 +0200 @@ -29,6 +29,9 @@ #include #include +#include "remap_names.h" +////#include "shadow_.h" + #ifndef _PATH_SHADOW #define _PATH_SHADOW "/etc/shadow" #endif @@ -47,6 +50,16 @@ #define PWD_BUFFER_SIZE 256 #define GRP_BUFFER_SIZE 256 +//// +int getpwuid_R (uid_t __uid, + struct passwd *__restrict __resultbuf, + char *__restrict __buffer, size_t __buflen, + struct passwd **__restrict __result); +int getgrgid_R (gid_t __gid, struct group *__restrict __resultbuf, + char *__restrict __buffer, size_t __buflen, + struct group **__restrict __result); + + /**********************************************************************/ /* Prototypes for internal functions. */ @@ -73,7 +86,7 @@ extern int __pgsreader(int (*__parserfun */ /**********************************************************************/ -int fgetpwent_r(FILE *__restrict stream, struct passwd *__restrict resultbuf, +int fgetpwent_R(FILE *__restrict stream, struct passwd *__restrict resultbuf, char *__restrict buffer, size_t buflen, struct passwd **__restrict result) { @@ -88,7 +101,7 @@ int fgetpwent_r(FILE *__restrict stream, return rv; } -int fgetgrent_r(FILE *__restrict stream, struct group *__restrict resultbuf, +int fgetgrent_R(FILE *__restrict stream, struct group *__restrict resultbuf, char *__restrict buffer, size_t buflen, struct group **__restrict result) { @@ -103,7 +116,7 @@ int fgetgrent_r(FILE *__restrict stream, return rv; } -int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf, +int fgetspent_R(FILE *__restrict stream, struct spwd *__restrict resultbuf, char *__restrict buffer, size_t buflen, struct spwd **__restrict result) { @@ -130,7 +143,7 @@ struct passwd *fgetpwent(FILE *stream) static struct passwd resultbuf; struct passwd *result; - fgetpwent_r(stream, &resultbuf, buffer, sizeof(buffer), &result); + fgetpwent_R(stream, &resultbuf, buffer, sizeof(buffer), &result); return result; } @@ -140,11 +153,11 @@ struct group *fgetgrent(FILE *stream) static struct group resultbuf; struct group *result; - fgetgrent_r(stream, &resultbuf, buffer, sizeof(buffer), &result); + fgetgrent_R(stream, &resultbuf, buffer, sizeof(buffer), &result); return result; } -extern int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf, +extern int fgetspent_R(FILE *__restrict stream, struct spwd *__restrict resultbuf, char *__restrict buffer, size_t buflen, struct spwd **__restrict result); struct spwd *fgetspent(FILE *stream) @@ -153,11 +166,11 @@ struct spwd *fgetspent(FILE *stream) static struct spwd resultbuf; struct spwd *result; - fgetspent_r(stream, &resultbuf, buffer, sizeof(buffer), &result); + fgetspent_R(stream, &resultbuf, buffer, sizeof(buffer), &result); return result; } -int sgetspent_r(const char *string, struct spwd *result_buf, +int sgetspent_R(const char *string, struct spwd *result_buf, char *buffer, size_t buflen, struct spwd **result) { int rv = ERANGE; @@ -239,7 +252,7 @@ struct passwd *getpwuid(uid_t uid) static struct passwd resultbuf; struct passwd *result; - getpwuid_r(uid, &resultbuf, buffer, sizeof(buffer), &result); + getpwuid_R(uid, &resultbuf, buffer, sizeof(buffer), &result); return result; } @@ -249,7 +262,7 @@ struct group *getgrgid(gid_t gid) static struct group resultbuf; struct group *result; - getgrgid_r(gid, &resultbuf, buffer, sizeof(buffer), &result); + getgrgid_R(gid, &resultbuf, buffer, sizeof(buffer), &result); return result; } @@ -257,7 +270,7 @@ struct group *getgrgid(gid_t gid) * to have been created as a reentrant version of the non-standard * functions getspuid. Why getspuid was added, I do not know. */ -int getspuid_r(uid_t uid, struct spwd *__restrict resultbuf, +int getspuid_R(uid_t uid, struct spwd *__restrict resultbuf, char *__restrict buffer, size_t buflen, struct spwd **__restrict result) { @@ -267,8 +280,8 @@ int getspuid_r(uid_t uid, struct spwd *_ char pwd_buff[PWD_BUFFER_SIZE]; *result = NULL; - if (!(rv = getpwuid_r(uid, &password, pwd_buff, sizeof(pwd_buff), &pp))) { - rv = getspnam_r(password.pw_name, resultbuf, buffer, buflen, result); + if (!(rv = getpwuid_R(uid, &password, pwd_buff, sizeof(pwd_buff), &pp))) { + rv = getspnam_R(password.pw_name, resultbuf, buffer, buflen, result); } return rv; @@ -283,7 +296,7 @@ struct spwd *getspuid(uid_t uid) static struct spwd resultbuf; struct spwd *result; - getspuid_r(uid, &resultbuf, buffer, sizeof(buffer), &result); + getspuid_R(uid, &resultbuf, buffer, sizeof(buffer), &result); return result; } @@ -293,7 +306,7 @@ struct passwd *getpwnam(const char *name static struct passwd resultbuf; struct passwd *result; - getpwnam_r(name, &resultbuf, buffer, sizeof(buffer), &result); + getpwnam_R(name, &resultbuf, buffer, sizeof(buffer), &result); return result; } @@ -303,7 +316,7 @@ struct group *getgrnam(const char *name) static struct group resultbuf; struct group *result; - getgrnam_r(name, &resultbuf, buffer, sizeof(buffer), &result); + getgrnam_R(name, &resultbuf, buffer, sizeof(buffer), &result); return result; } @@ -313,7 +326,7 @@ struct spwd *getspnam(const char *name) static struct spwd resultbuf; struct spwd *result; - getspnam_r(name, &resultbuf, buffer, sizeof(buffer), &result); + getspnam_R(name, &resultbuf, buffer, sizeof(buffer), &result); return result; } @@ -325,7 +338,7 @@ int getpw(uid_t uid, char *buf) if (!buf) { errno=EINVAL; - } else if (!getpwuid_r(uid, &resultbuf, buffer, sizeof(buffer), &result)) { + } else if (!getpwuid_R(uid, &resultbuf, buffer, sizeof(buffer), &result)) { if (sprintf(buf, "%s:%s:%lu:%lu:%s:%s:%s\n", resultbuf.pw_name, resultbuf.pw_passwd, (unsigned long)(resultbuf.pw_uid), @@ -372,7 +385,7 @@ void endpwent(void) } -int getpwent_r(struct passwd *__restrict resultbuf, +int getpwent_R(struct passwd *__restrict resultbuf, char *__restrict buffer, size_t buflen, struct passwd **__restrict result) { @@ -418,7 +431,7 @@ void endgrent(void) UNLOCK; } -int getgrent_r(struct group *__restrict resultbuf, +int getgrent_R(struct group *__restrict resultbuf, char *__restrict buffer, size_t buflen, struct group **__restrict result) { @@ -464,7 +477,7 @@ void endspent(void) UNLOCK; } -int getspent_r(struct spwd *resultbuf, char *buffer, +int getspent_R(struct spwd *resultbuf, char *buffer, size_t buflen, struct spwd **result) { int rv; @@ -495,7 +508,7 @@ struct passwd *getpwent(void) static struct passwd pwd; struct passwd *result; - getpwent_r(&pwd, line_buff, sizeof(line_buff), &result); + getpwent_R(&pwd, line_buff, sizeof(line_buff), &result); return result; } @@ -505,7 +518,7 @@ struct group *getgrent(void) static struct group gr; struct group *result; - getgrent_r(&gr, line_buff, sizeof(line_buff), &result); + getgrent_R(&gr, line_buff, sizeof(line_buff), &result); return result; } @@ -515,7 +528,7 @@ struct spwd *getspent(void) static struct spwd spwd; struct spwd *result; - getspent_r(&spwd, line_buff, sizeof(line_buff), &result); + getspent_R(&spwd, line_buff, sizeof(line_buff), &result); return result; } @@ -525,7 +538,7 @@ struct spwd *sgetspent(const char *strin static struct spwd spwd; struct spwd *result; - sgetspent_r(string, &spwd, line_buff, sizeof(line_buff), &result); + sgetspent_R(string, &spwd, line_buff, sizeof(line_buff), &result); return result; }