From: d Date: Thu, 23 Mar 2000 05:18:33 +0000 (+0000) Subject: test re-entrant getpwnam_r X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=582ef3f799f2ecefad4655ff4f49688cf1c67bb4;p=openbsd test re-entrant getpwnam_r --- diff --git a/lib/libc_r/TEST/test_pw.c b/lib/libc_r/TEST/test_pw.c index 1bf41d7723c..cc23e6f4f4f 100644 --- a/lib/libc_r/TEST/test_pw.c +++ b/lib/libc_r/TEST/test_pw.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_pw.c,v 1.4 2000/01/06 06:58:34 d Exp $ */ +/* $OpenBSD: test_pw.c,v 1.5 2000/03/23 05:18:33 d Exp $ */ #include #include #include @@ -9,6 +9,9 @@ int main() { struct passwd *pw; + struct passwd pwbuf; + char buf[8192]; + char name[16]; CHECKn(pw = getpwuid(getuid())); printf("getpwuid(%d) => %p\n", getuid(), pw); @@ -16,5 +19,10 @@ main() "class: %s\ngecos: %s\n dir: %s\nshell: %s\n", pw->pw_name, pw->pw_uid, pw->pw_gid, pw->pw_class, pw->pw_gecos, pw->pw_dir, pw->pw_shell); + + strlcpy(name, pw->pw_name, sizeof name); + CHECKe(getpwnam_r(name, &pwbuf, buf, sizeof buf, &pw)); + ASSERT(pwbuf.pw_uid == getuid()); + SUCCEED; }