aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2011-03-01 16:27:13 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2011-03-01 16:27:13 +0100
commit7d65abea092e917bc2320cbf1d5a2dccb2a8288f (patch)
tree48d54d5150bedd8eb980b1760d75deb6f6df8949
parent3b28dae17dc93584f0e38388d0dbdbd6761d705e (diff)
downloadbusybox-w32-7d65abea092e917bc2320cbf1d5a2dccb2a8288f.tar.gz
busybox-w32-7d65abea092e917bc2320cbf1d5a2dccb2a8288f.tar.bz2
busybox-w32-7d65abea092e917bc2320cbf1d5a2dccb2a8288f.zip
libbb: make user/group name cache strings longer (~27 chars)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--include/libbb.h6
-rw-r--r--libbb/bb_pwd.c4
-rw-r--r--libbb/procps.c14
3 files changed, 12 insertions, 12 deletions
diff --git a/include/libbb.h b/include/libbb.h
index 65c319402..c26012c5d 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -839,14 +839,14 @@ char* xuid2uname(uid_t uid) FAST_FUNC;
839char* xgid2group(gid_t gid) FAST_FUNC; 839char* xgid2group(gid_t gid) FAST_FUNC;
840char* uid2uname(uid_t uid) FAST_FUNC; 840char* uid2uname(uid_t uid) FAST_FUNC;
841char* gid2group(gid_t gid) FAST_FUNC; 841char* gid2group(gid_t gid) FAST_FUNC;
842char* uid2uname_utoa(long uid) FAST_FUNC; 842char* uid2uname_utoa(uid_t uid) FAST_FUNC;
843char* gid2group_utoa(long gid) FAST_FUNC; 843char* gid2group_utoa(gid_t gid) FAST_FUNC;
844/* versions which cache results (useful for ps, ls etc) */ 844/* versions which cache results (useful for ps, ls etc) */
845const char* get_cached_username(uid_t uid) FAST_FUNC; 845const char* get_cached_username(uid_t uid) FAST_FUNC;
846const char* get_cached_groupname(gid_t gid) FAST_FUNC; 846const char* get_cached_groupname(gid_t gid) FAST_FUNC;
847void clear_username_cache(void) FAST_FUNC; 847void clear_username_cache(void) FAST_FUNC;
848/* internally usernames are saved in fixed-sized char[] buffers */ 848/* internally usernames are saved in fixed-sized char[] buffers */
849enum { USERNAME_MAX_SIZE = 16 - sizeof(int) }; 849enum { USERNAME_MAX_SIZE = 32 - sizeof(uid_t) };
850#if ENABLE_FEATURE_CHECK_NAMES 850#if ENABLE_FEATURE_CHECK_NAMES
851void die_if_bad_username(const char* name) FAST_FUNC; 851void die_if_bad_username(const char* name) FAST_FUNC;
852#else 852#else
diff --git a/libbb/bb_pwd.c b/libbb/bb_pwd.c
index 32406cb58..4829b723a 100644
--- a/libbb/bb_pwd.c
+++ b/libbb/bb_pwd.c
@@ -72,13 +72,13 @@ char* FAST_FUNC gid2group(gid_t gid)
72 return (gr) ? gr->gr_name : NULL; 72 return (gr) ? gr->gr_name : NULL;
73} 73}
74 74
75char* FAST_FUNC uid2uname_utoa(long uid) 75char* FAST_FUNC uid2uname_utoa(uid_t uid)
76{ 76{
77 char *name = uid2uname(uid); 77 char *name = uid2uname(uid);
78 return (name) ? name : utoa(uid); 78 return (name) ? name : utoa(uid);
79} 79}
80 80
81char* FAST_FUNC gid2group_utoa(long gid) 81char* FAST_FUNC gid2group_utoa(gid_t gid)
82{ 82{
83 char *name = gid2group(gid); 83 char *name = gid2group(gid);
84 return (name) ? name : utoa(gid); 84 return (name) ? name : utoa(gid);
diff --git a/libbb/procps.c b/libbb/procps.c
index fb4c32001..5833a1f0d 100644
--- a/libbb/procps.c
+++ b/libbb/procps.c
@@ -12,13 +12,13 @@
12#include "libbb.h" 12#include "libbb.h"
13 13
14 14
15typedef struct unsigned_to_name_map_t { 15typedef struct id_to_name_map_t {
16 long id; 16 uid_t id;
17 char name[USERNAME_MAX_SIZE]; 17 char name[USERNAME_MAX_SIZE];
18} unsigned_to_name_map_t; 18} id_to_name_map_t;
19 19
20typedef struct cache_t { 20typedef struct cache_t {
21 unsigned_to_name_map_t *cache; 21 id_to_name_map_t *cache;
22 int size; 22 int size;
23} cache_t; 23} cache_t;
24 24
@@ -39,7 +39,7 @@ void FAST_FUNC clear_username_cache(void)
39#if 0 /* more generic, but we don't need that yet */ 39#if 0 /* more generic, but we don't need that yet */
40/* Returns -N-1 if not found. */ 40/* Returns -N-1 if not found. */
41/* cp->cache[N] is allocated and must be filled in this case */ 41/* cp->cache[N] is allocated and must be filled in this case */
42static int get_cached(cache_t *cp, unsigned id) 42static int get_cached(cache_t *cp, uid_t id)
43{ 43{
44 int i; 44 int i;
45 for (i = 0; i < cp->size; i++) 45 for (i = 0; i < cp->size; i++)
@@ -52,8 +52,8 @@ static int get_cached(cache_t *cp, unsigned id)
52} 52}
53#endif 53#endif
54 54
55static char* get_cached(cache_t *cp, long id, 55static char* get_cached(cache_t *cp, uid_t id,
56 char* FAST_FUNC x2x_utoa(long id)) 56 char* FAST_FUNC x2x_utoa(uid_t id))
57{ 57{
58 int i; 58 int i;
59 for (i = 0; i < cp->size; i++) 59 for (i = 0; i < cp->size; i++)