libpwdgrp: use getpwent() instead of getpwent_r()

function                                             old     new   delta
massage_data_for_non_r_func                            -      90     +90
bb_internal_getpwent                                   -      69     +69
getXXnam_r                                            94     162     +68
fill_bounds                                          131     128      -3
deluser_main                                         355     310     -45
complete_username                                    123      78     -45
getXXnam                                             163      90     -73
massage_data_for_r_func                              103       -    -103
bb_internal_getpwent_r                               121       -    -121
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 1/5 up/down: 227/-407)         Total: -163 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2015-02-07 21:21:02 +01:00
parent 68c048fb23
commit 23cfaab47d
4 changed files with 53 additions and 43 deletions

View File

@@ -36,7 +36,6 @@ PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
#define getpwent bb_internal_getpwent
#define getpwuid bb_internal_getpwuid
#define getpwnam bb_internal_getpwnam
#define getpwent_r bb_internal_getpwent_r
#define getpwnam_r bb_internal_getpwnam_r
/* All function names below should be remapped by #defines above
@@ -48,10 +47,8 @@ void FAST_FUNC setpwent(void);
/* Close the password-file stream. */
void FAST_FUNC endpwent(void);
#ifdef UNUSED_SINCE_WE_AVOID_STATIC_BUFS
/* Read an entry from the password-file stream, opening it if necessary. */
struct passwd* FAST_FUNC getpwent(void);
#endif
/* Search for an entry with a matching user ID. */
struct passwd* FAST_FUNC getpwuid(uid_t __uid);
@@ -59,18 +56,7 @@ struct passwd* FAST_FUNC getpwuid(uid_t __uid);
/* Search for an entry with a matching username. */
struct passwd* FAST_FUNC getpwnam(const char *__name);
/* Reentrant versions of some of the functions above.
PLEASE NOTE: the `getpwent_r' function is not (yet) standardized.
The interface may change in later versions of this library. But
the interface is designed following the principals used for the
other reentrant functions so the chances are good this is what the
POSIX people would choose. */
int FAST_FUNC getpwent_r(struct passwd *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct passwd **__restrict __result);
/* Reentrant versions of some of the functions above. */
int FAST_FUNC getpwnam_r(const char *__restrict __name,
struct passwd *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,