Add xgetpwnam() to lib/xwrap.c.
diff --git a/lib/xwrap.c b/lib/xwrap.c
index 71ea920..c0c8a44 100644
--- a/lib/xwrap.c
+++ b/lib/xwrap.c
@@ -402,17 +402,24 @@
 struct passwd *xgetpwuid(uid_t uid)
 {
   struct passwd *pwd = getpwuid(uid);
-  if (!pwd) error_exit(NULL);
+  if (!pwd) error_exit("bad uid %ld", (long)uid);
   return pwd;
 }
 
 struct group *xgetgrgid(gid_t gid)
 {
   struct group *group = getgrgid(gid);
-  if (!group) error_exit(NULL);
+  if (!group) error_exit("bad gid %ld", (long)gid);
   return group;
 }
 
+struct passwd *xgetpwnam(char *name)
+{
+  struct passwd *up = getpwnam(name);
+  if (!up) error_exit("bad user '%s'", name);
+  return up;
+}
+
 // This can return null (meaning file not found).  It just won't return null
 // for memory allocation reasons.
 char *xreadlink(char *name)