X-Git-Url: https://git.distorted.org.uk/~mdw/become/blobdiff_plain/46cc26eb66585c23ca816e17b7e1721585b4057a..c758e6541ca05409b178dd9629e9337494c49890:/src/userdb.c diff --git a/src/userdb.c b/src/userdb.c index db5e44b..2db8ee5 100644 --- a/src/userdb.c +++ b/src/userdb.c @@ -1,10 +1,10 @@ /* -*-c-*- * - * $Id: userdb.c,v 1.4 1997/08/20 16:24:58 mdw Exp $ + * $Id: userdb.c,v 1.6 1998/01/12 16:46:33 mdw Exp $ * * User database management * - * (c) 1997 EBI + * (c) 1998 EBI */ /*----- Licensing notice --------------------------------------------------* @@ -29,7 +29,14 @@ /*----- Revision history --------------------------------------------------* * * $Log: userdb.c,v $ - * Revision 1.4 1997/08/20 16:24:58 mdw + * Revision 1.6 1998/01/12 16:46:33 mdw + * Fix copyright date. + * + * Revision 1.5 1997/09/17 10:24:08 mdw + * Use `uid_t' instead of `int' for uids and gids. Not quite sure why I + * didn't do this before. + * + * Revision 1.4 1997/08/20 16:24:58 mdw * Patch memory leak. Rename `userdb_reinit' to `userdb_end' for more * sensible restart. * @@ -131,7 +138,7 @@ static void userdb__createMap(userdb__map *m) * * Arguments: @userdb__map *m@ = pointer to the map block * @const char *name@ = pointer to the item's name - * @int id@ = the item's id number + * @uid_t id@ = the item's id number * @void *rec@ = pointer to the actual record * * Returns: --- @@ -141,7 +148,7 @@ static void userdb__createMap(userdb__map *m) static void userdb__addToMap(userdb__map *m, const char *name, - int id, void *rec) + uid_t id, void *rec) { unsigned f; userdb__sym *s; @@ -180,14 +187,14 @@ static void *userdb__byName(userdb__map *m, const char *name) /* --- @userdb__byId@ --- * * * Arguments: @userdb__map *m@ = pointer to a map block - * @int id@ = id number to find + * @uid_t id@ = id number to find * * Returns: A pointer to the appropriate block, or zero if not found. * * Use: Looks up an ID in a mapping, and returns the result. */ -static void *userdb__byId(userdb__map *m, int id) +static void *userdb__byId(userdb__map *m, uid_t id) { userdb__sym *s = sym_find(&m->idmap, (char *)&id, sizeof(id), 0, 0); return (s ? s->rec : 0); @@ -291,8 +298,8 @@ static struct passwd *userdb__buildUser(char *s) s = strtok(s, ":"); if (!s) goto tidy_0; pw->pw_name = xstrdup(s); s = strtok(0, ":"); if (!s) goto tidy_1; pw->pw_passwd = xstrdup(s); - s = strtok(0, ":"); if (!s) goto tidy_2; pw->pw_uid = atoi(s); - s = strtok(0, ":"); if (!s) goto tidy_2; pw->pw_gid = atoi(s); + s = strtok(0, ":"); if (!s) goto tidy_2; pw->pw_uid = (uid_t)atol(s); + s = strtok(0, ":"); if (!s) goto tidy_2; pw->pw_gid = (gid_t)atol(s); s = strtok(0, ":"); if (!s) goto tidy_2; pw->pw_gecos = xstrdup(s); s = strtok(0, ":"); if (!s) goto tidy_3; pw->pw_dir = xstrdup(s); s = strtok(0, ":"); if (!s) goto tidy_4; pw->pw_shell = xstrdup(s); @@ -419,7 +426,7 @@ static struct group *userdb__buildGroup(char *s) s = strtok(s, ":"); if (!s) goto tidy_0; gr->gr_name = xstrdup(s); s = strtok(0, ":"); if (!s) goto tidy_1; gr->gr_passwd = xstrdup(s); - s = strtok(0, ":"); if (!s) goto tidy_2; gr->gr_gid = atoi(s); + s = strtok(0, ":"); if (!s) goto tidy_2; gr->gr_gid = (gid_t)atol(s); /* --- Find the start of the member list --- */