Don't bother to set sockaddr_un.sun_len.
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
This commit is contained in:
parent
f972ec5c28
commit
c981879814
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user