Commit e1827012 authored by Bruce Momjian's avatar Bruce Momjian

Adjust getpwuid() fix commit to display errno string on failure

This adjusts patch 613c6d26.
parent a87c7291
...@@ -1559,9 +1559,8 @@ auth_peer(hbaPort *port) ...@@ -1559,9 +1559,8 @@ auth_peer(hbaPort *port)
char ident_user[IDENT_USERNAME_MAX + 1]; char ident_user[IDENT_USERNAME_MAX + 1];
uid_t uid; uid_t uid;
gid_t gid; gid_t gid;
struct passwd *pass; struct passwd *pw;
errno = 0;
if (getpeereid(port->sock, &uid, &gid) != 0) if (getpeereid(port->sock, &uid, &gid) != 0)
{ {
/* Provide special error message if getpeereid is a stub */ /* Provide special error message if getpeereid is a stub */
...@@ -1576,17 +1575,17 @@ auth_peer(hbaPort *port) ...@@ -1576,17 +1575,17 @@ auth_peer(hbaPort *port)
return STATUS_ERROR; return STATUS_ERROR;
} }
pass = getpwuid(uid); errno = 0; /* clear errno before call */
pw = getpwuid(uid);
if (pass == NULL) if (!pw)
{ {
ereport(LOG, ereport(LOG,
(errmsg("local user with ID %d does not exist", (errmsg("failed to look up local user id %ld: %s",
(int) uid))); (long) uid, errno ? strerror(errno) : _("user does not exist"))));
return STATUS_ERROR; return STATUS_ERROR;
} }
strlcpy(ident_user, pass->pw_name, IDENT_USERNAME_MAX + 1); strlcpy(ident_user, pw->pw_name, IDENT_USERNAME_MAX + 1);
return check_usermap(port->hba->usermap, port->user_name, ident_user, false); return check_usermap(port->hba->usermap, port->user_name, ident_user, false);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment