=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sudo/Attic/pwutil.c,v retrieving revision 1.1 retrieving revision 1.2 diff -c -r1.1 -r1.2 *** src/usr.bin/sudo/Attic/pwutil.c 2008/11/14 11:58:08 1.1 --- src/usr.bin/sudo/Attic/pwutil.c 2009/06/21 14:48:42 1.2 *************** *** 1,5 **** /* ! * Copyright (c) 1996, 1998-2005, 2007-2008 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any --- 1,5 ---- /* ! * Copyright (c) 1996, 1998-2005, 2007-2009 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any *************** *** 53,59 **** #include "redblack.h" #ifndef lint ! __unused static const char rcsid[] = "$Sudo: pwutil.c,v 1.21 2008/11/09 14:13:12 millert Exp $"; #endif /* lint */ #ifdef MYPW --- 53,59 ---- #include "redblack.h" #ifndef lint ! __unused static const char rcsid[] = "$Sudo: pwutil.c,v 1.23 2009/05/25 12:02:41 millert Exp $"; #endif /* lint */ #ifdef MYPW *************** *** 207,224 **** if (pw->pw_passwd != NULL) zero_bytes(pw->pw_passwd, strlen(pw->pw_passwd)); pw->pw_passwd = cp; - - if (rbinsert(pwcache_byname, (void *) pw) != NULL) - errorx(1, "unable to cache user name, already exists"); if (rbinsert(pwcache_byuid, (void *) pw) != NULL) ! errorx(1, "unable to cache uid, already exists"); return(pw); } else { pw = emalloc(sizeof(*pw)); zero_bytes(pw, sizeof(*pw)); pw->pw_uid = uid; if (rbinsert(pwcache_byuid, (void *) pw) != NULL) ! errorx(1, "unable to cache uid, already exists"); return(NULL); } } --- 207,222 ---- if (pw->pw_passwd != NULL) zero_bytes(pw->pw_passwd, strlen(pw->pw_passwd)); pw->pw_passwd = cp; if (rbinsert(pwcache_byuid, (void *) pw) != NULL) ! errorx(1, "unable to cache uid %lu (%s), already exists", ! uid, pw->pw_name); return(pw); } else { pw = emalloc(sizeof(*pw)); zero_bytes(pw, sizeof(*pw)); pw->pw_uid = uid; if (rbinsert(pwcache_byuid, (void *) pw) != NULL) ! errorx(1, "unable to cache uid %lu, already exists", uid); return(NULL); } } *************** *** 250,260 **** if (pw->pw_passwd != NULL) zero_bytes(pw->pw_passwd, strlen(pw->pw_passwd)); pw->pw_passwd = cp; - if (rbinsert(pwcache_byname, (void *) pw) != NULL) ! errorx(1, "unable to cache user name, already exists"); ! if (rbinsert(pwcache_byuid, (void *) pw) != NULL) ! errorx(1, "unable to cache uid, already exists"); return(pw); } else { len = strlen(name) + 1; --- 248,255 ---- if (pw->pw_passwd != NULL) zero_bytes(pw->pw_passwd, strlen(pw->pw_passwd)); pw->pw_passwd = cp; if (rbinsert(pwcache_byname, (void *) pw) != NULL) ! errorx(1, "unable to cache user %s, already exists", name); return(pw); } else { len = strlen(name) + 1; *************** *** 266,272 **** pw->pw_name = cp; pw->pw_uid = (uid_t) -1; if (rbinsert(pwcache_byname, (void *) pw) != NULL) ! errorx(1, "unable to cache user name, already exists"); return(NULL); } } --- 261,267 ---- pw->pw_name = cp; pw->pw_uid = (uid_t) -1; if (rbinsert(pwcache_byname, (void *) pw) != NULL) ! errorx(1, "unable to cache user %s, already exists", name); return(NULL); } } *************** *** 487,503 **** */ if ((gr = getgrgid(gid)) != NULL) { gr = sudo_grdup(gr); - if (rbinsert(grcache_byname, (void *) gr) != NULL) - errorx(1, "unable to cache group name, already exists"); if (rbinsert(grcache_bygid, (void *) gr) != NULL) ! errorx(1, "unable to cache gid, already exists"); return(gr); } else { gr = emalloc(sizeof(*gr)); zero_bytes(gr, sizeof(*gr)); gr->gr_gid = gid; if (rbinsert(grcache_bygid, (void *) gr) != NULL) ! errorx(1, "unable to cache gid, already exists"); return(NULL); } } --- 482,497 ---- */ if ((gr = getgrgid(gid)) != NULL) { gr = sudo_grdup(gr); if (rbinsert(grcache_bygid, (void *) gr) != NULL) ! errorx(1, "unable to cache gid %lu (%s), already exists", ! gid, gr->gr_name); return(gr); } else { gr = emalloc(sizeof(*gr)); zero_bytes(gr, sizeof(*gr)); gr->gr_gid = gid; if (rbinsert(grcache_bygid, (void *) gr) != NULL) ! errorx(1, "unable to cache gid %lu, already exists, gid"); return(NULL); } } *************** *** 525,533 **** if ((gr = getgrnam(name)) != NULL) { gr = sudo_grdup(gr); if (rbinsert(grcache_byname, (void *) gr) != NULL) ! errorx(1, "unable to cache group name, already exists"); ! if (rbinsert(grcache_bygid, (void *) gr) != NULL) ! errorx(1, "unable to cache gid, already exists"); return(gr); } else { len = strlen(name) + 1; --- 519,525 ---- if ((gr = getgrnam(name)) != NULL) { gr = sudo_grdup(gr); if (rbinsert(grcache_byname, (void *) gr) != NULL) ! errorx(1, "unable to cache group %s, already exists", name); return(gr); } else { len = strlen(name) + 1; *************** *** 539,545 **** gr->gr_name = cp; gr->gr_gid = (gid_t) -1; if (rbinsert(grcache_byname, (void *) gr) != NULL) ! errorx(1, "unable to cache group name, already exists"); return(NULL); } } --- 531,537 ---- gr->gr_name = cp; gr->gr_gid = (gid_t) -1; if (rbinsert(grcache_byname, (void *) gr) != NULL) ! errorx(1, "unable to cache group %s, already exists", name); return(NULL); } }