X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libpwdgrp%2Fpwd_grp.c;h=34690a738e554f3caff88d596c4593515a37117d;hb=2b46fd49b14b2ac30e0c767c65ac2b29f6922a45;hp=26e8ff469aa4aae700e9a087046a3ec3a6880f32;hpb=17fcd72add2a94c9542dba72124032b54838cb50;p=oweals%2Fbusybox.git diff --git a/libpwdgrp/pwd_grp.c b/libpwdgrp/pwd_grp.c index 26e8ff469..34690a738 100644 --- a/libpwdgrp/pwd_grp.c +++ b/libpwdgrp/pwd_grp.c @@ -164,6 +164,7 @@ int fgetgrent_r(FILE *__restrict stream, struct group *__restrict resultbuf, } #if ENABLE_USE_BB_SHADOW +#ifdef UNUSED_FOR_NOW int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf, char *__restrict buffer, size_t buflen, struct spwd **__restrict result) @@ -180,6 +181,7 @@ int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf, return rv; } #endif +#endif /**********************************************************************/ /* For the various fget??ent funcs, return NULL on failure and a @@ -187,7 +189,7 @@ int fgetspent_r(FILE *__restrict stream, struct spwd *__restrict resultbuf, * TODO: audit & stop using these in bbox, they pull in static buffers */ /**********************************************************************/ -#if 0 +#ifdef UNUSED_SINCE_WE_AVOID_STATIC_BUFS struct passwd *fgetpwent(FILE *stream) { struct statics *S; @@ -212,7 +214,7 @@ struct group *fgetgrent(FILE *stream) #endif #if ENABLE_USE_BB_SHADOW -#if 0 +#ifdef UNUSED_SINCE_WE_AVOID_STATIC_BUFS struct spwd *fgetspent(FILE *stream) { struct statics *S; @@ -225,6 +227,7 @@ struct spwd *fgetspent(FILE *stream) } #endif +#ifdef UNUSED_FOR_NOW int sgetspent_r(const char *string, struct spwd *result_buf, char *buffer, size_t buflen, struct spwd **result) { @@ -254,6 +257,7 @@ int sgetspent_r(const char *string, struct spwd *result_buf, return rv; } #endif +#endif /* ENABLE_USE_BB_SHADOW */ /**********************************************************************/ @@ -399,35 +403,6 @@ struct spwd *getspnam(const char *name) } #endif -#ifdef THIS_ONE_IS_UNUSED -/* This one doesn't use static buffers */ -int getpw(uid_t uid, char *buf) -{ - struct passwd resultbuf; - struct passwd *result; - char buffer[PWD_BUFFER_SIZE]; - - if (!buf) { - errno = EINVAL; - return -1; - } - - 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), - (unsigned long)(resultbuf.pw_gid), - resultbuf.pw_gecos, resultbuf.pw_dir, - resultbuf.pw_shell) >= 0 - ) { - return 0; - } - } - - return -1; -} -#endif - /**********************************************************************/ /* FIXME: we don't have such CONFIG_xx - ?! */ @@ -536,6 +511,7 @@ int getgrent_r(struct group *__restrict resultbuf, return rv; } +#ifdef UNUSED_FOR_NOW #if ENABLE_USE_BB_SHADOW static FILE *spf /*= NULL*/; void setspent(void) @@ -583,8 +559,9 @@ int getspent_r(struct spwd *resultbuf, char *buffer, return rv; } #endif +#endif /* UNUSED_FOR_NOW */ -#if 0 +#ifdef UNUSED_SINCE_WE_AVOID_STATIC_BUFS struct passwd *getpwent(void) { static char line_buff[PWD_BUFFER_SIZE]; @@ -604,9 +581,8 @@ struct group *getgrent(void) getgrent_r(&gr, line_buff, sizeof(line_buff), &result); return result; } -#endif -#if 0 //ENABLE_USE_BB_SHADOW +#if ENABLE_USE_BB_SHADOW struct spwd *getspent(void) { static char line_buff[PWD_BUFFER_SIZE]; @@ -627,6 +603,7 @@ struct spwd *sgetspent(const char *string) return result; } #endif +#endif /* UNUSED_SINCE_WE_AVOID_STATIC_BUFS */ static gid_t *getgrouplist_internal(int *ngroups_ptr, const char *user, gid_t gid) { @@ -687,14 +664,18 @@ int getgrouplist(const char *user, gid_t gid, gid_t *groups, int *ngroups) return ngroups_old; } +#ifdef UNUSED_SINCE_WE_AVOID_STATIC_BUFS int putpwent(const struct passwd *__restrict p, FILE *__restrict f) { int rv = -1; +#if 0 + /* glibc does this check */ if (!p || !f) { errno = EINVAL; return rv; } +#endif /* No extra thread locking is needed above what fprintf does. */ if (fprintf(f, "%s:%s:%lu:%lu:%s:%s:%s\n", @@ -713,10 +694,13 @@ int putgrent(const struct group *__restrict p, FILE *__restrict f) { int rv = -1; - if (!p || !f) { /* Sigh... glibc checks. */ +#if 0 + /* glibc does this check */ + if (!p || !f) { errno = EINVAL; return rv; } +#endif if (fprintf(f, "%s:%s:%lu:", p->gr_name, p->gr_passwd, @@ -749,8 +733,10 @@ int putgrent(const struct group *__restrict p, FILE *__restrict f) return rv; } +#endif #if ENABLE_USE_BB_SHADOW +#ifdef UNUSED_FOR_NOW static const unsigned char put_sp_off[] ALIGN1 = { offsetof(struct spwd, sp_lstchg), /* 2 - not a char ptr */ offsetof(struct spwd, sp_min), /* 3 - not a char ptr */ @@ -797,9 +783,10 @@ int putspent(const struct spwd *p, FILE *stream) return rv; } #endif +#endif /* USE_BB_SHADOW */ /**********************************************************************/ -/* Internal uClibc functions. */ +/* Internal functions */ /**********************************************************************/ static const unsigned char pw_off[] ALIGN1 = { @@ -906,9 +893,9 @@ static int FAST_FUNC bb__parsegrent(void *data, char *line) if (p[1]) { /* We have a member list to process. */ /* Overwrite the last ':' with a ',' before counting. - * This allows us to test for initial ',' and adds - * one ',' so that the ',' count equals the member - * count. */ + * This allows us to (1) test for initial ',' + * and (2) adds one ',' so that the number of commas + * equals the member count. */ *p = ','; do { /* NOTE: glibc difference - glibc allows and trims leading @@ -1013,10 +1000,10 @@ static int FAST_FUNC bb__parsespent(void *data, char *line) /**********************************************************************/ -/* Reads until if EOF, or until if finds a line which fits in the buffer +/* Reads until EOF, or until it finds a line which fits in the buffer * and for which the parser function succeeds. * - * Returns 0 on success and ENOENT for end-of-file (glibc concession). + * Returns 0 on success and ENOENT for end-of-file (glibc convention). */ static int bb__pgsreader( int FAST_FUNC (*parserfunc)(void *d, char *line),