Don't bother to set sockaddr_un.sun_len.
authorThomas Munro <[email protected]>
Tue, 23 Aug 2022 11:52:17 +0000 (23:52 +1200)
committerThomas Munro <[email protected]>
Tue, 23 Aug 2022 12:09:37 +0000 (00:09 +1200)
It's not necessary to fill in sun_len when calling bind() or connect(),
on all known systems that have it.

Discussion: https://postgr.es/m/2781112.1644819528%40sss.pgh.pa.us

src/common/ip.c

index 9b611cdc8c3966131d74679dee504e4d050f23a6..6343f49a70a65b437e9c0d2daa675210479c55f8 100644 (file)
@@ -218,20 +218,6 @@ getaddrinfo_unix(const char *path, const struct addrinfo *hintsp,
                aip->ai_addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(path);
        }
 
-       /*
-        * The standard recommendation for filling sun_len is to set it to the
-        * struct size (independently of the actual path length).  However, that
-        * draws an integer-overflow warning on AIX 7.1, where sun_len is just
-        * uint8 yet the struct size exceeds 255 bytes.  It's likely that nothing
-        * is paying attention to sun_len on that platform, but we have to do
-        * something with it.  To suppress the warning, clamp the struct size to
-        * what will fit in sun_len.
-        */
-#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
-       unp->sun_len = Min(sizeof(struct sockaddr_un),
-                                          ((size_t) 1 << (sizeof(unp->sun_len) * BITS_PER_BYTE)) - 1);
-#endif
-
        return 0;
 }