Description: Do not call chown(2) unless we need to
 Apparently some glibc/kernel combinations will fail for unprivileged
 users even for chown(-1, -1).
 Fixes the FTBFS on sparc64.
Forwarded: no
Author: Peter Pentchev <roam@ringlet.net>
Last-Update: 2024-12-13

--- a/unixserver.c
+++ b/unixserver.c
@@ -243,7 +243,8 @@
   if(bind(s, (struct sockaddr*)saddr, SUN_LEN(saddr)) != 0)
     die("bind");
   umask(old_umask);
-  if(chown(opt_socket, opt_socket_uid, opt_socket_gid) == -1)
+  if((opt_socket_uid != (uid_t)-1 || opt_socket_gid != (gid_t)-1) &&
+	chown(opt_socket, opt_socket_uid, opt_socket_gid) == -1)
     die("chown");
   if(opt_perms && chmod(opt_socket, opt_perms) == -1)
     die("chmod");
