getpeereid(3): Fix behavior on failure to match documentation.

According to the getpeereid(3) documentation, on failure the value -1 is
returned and the global variable errno is set to indicate the error. We
were returning the error instead.

Obtained from:	Apple's Libc-1244.30.3
MFC after:	5 days
This commit is contained in:
Pedro F. Giffuni 2018-02-23 00:28:00 +00:00
parent d68b76a9de
commit 8d48e738b5

View File

@ -50,8 +50,10 @@ getpeereid(int s, uid_t *euid, gid_t *egid)
error = _getsockopt(s, 0, LOCAL_PEERCRED, &xuc, &xuclen);
if (error != 0)
return (error);
if (xuc.cr_version != XUCRED_VERSION)
return (EINVAL);
if (xuc.cr_version != XUCRED_VERSION) {
errno = EINVAL;
return (-1);
}
*euid = xuc.cr_uid;
*egid = xuc.cr_gid;
return (0);