client: Do not use SOL_SOCKET for LOCAL_PEERCRED

This is wrong, and leads to LOCAL_PEERCRED being interpreted as
SO_DEBUG. 0 should be used instead.

See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246189.
This commit is contained in:
Kenny Levinsen 2020-12-08 16:38:17 +01:00
parent e3a357bade
commit e99e7d71f7

View file

@ -37,7 +37,7 @@ static int get_peer(int fd, pid_t *pid, uid_t *uid, gid_t *gid) {
#elif defined(__FreeBSD__)
struct xucred cred;
socklen_t len = sizeof cred;
if (getsockopt(fd, SOL_SOCKET, LOCAL_PEERCRED, &cred, &len) == -1) {
if (getsockopt(fd, 0, LOCAL_PEERCRED, &cred, &len) == -1) {
return -1;
}
*pid = -1;