ports/sysutils/nix/patches/patch-src_nix-daemon_nix-daemon_cc

20 lines
582 B
Text
Raw Normal View History

2023-08-16 22:26:55 +00:00
Use proper struct sockpeercred for SO_PEERCRED
getsockopt(2) documents this; ucred is wrong ("cr_" member prefix, no pid).
Index: src/nix-daemon/nix-daemon.cc
--- src/nix-daemon/nix-daemon.cc.orig
+++ src/nix-daemon/nix-daemon.cc
@@ -901,7 +901,11 @@ static PeerInfo getPeerInfo(int remote)
#if defined(SO_PEERCRED)
+#if defined(__OpenBSD__)
+ struct sockpeercred cred;
+#else
ucred cred;
+#endif
socklen_t credLen = sizeof(cred);
if (getsockopt(remote, SOL_SOCKET, SO_PEERCRED, &cred, &credLen) == -1)
throw SysError("getting peer credentials");