From 09ef48bd005a7f9e97a3fe797a079fcf2b5e58d3 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Sat, 15 Dec 2018 01:40:18 +0100 Subject: Update NSPR to 4.20 --- nsprpub/pr/src/misc/prnetdb.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'nsprpub/pr/src/misc/prnetdb.c') diff --git a/nsprpub/pr/src/misc/prnetdb.c b/nsprpub/pr/src/misc/prnetdb.c index affebf6ac..c482e8e4a 100644 --- a/nsprpub/pr/src/misc/prnetdb.c +++ b/nsprpub/pr/src/misc/prnetdb.c @@ -7,6 +7,10 @@ #include +#if defined(LINUX) +#include +#endif + /* * On Unix, the error code for gethostbyname() and gethostbyaddr() * is returned in the global variable h_errno, instead of the usual @@ -1366,7 +1370,17 @@ PRUintn _PR_NetAddrSize(const PRNetAddr* addr) #endif #if defined(XP_UNIX) || defined(XP_OS2) else if (AF_UNIX == addr->raw.family) - addrsize = sizeof(addr->local); + { +#if defined(LINUX) + if (addr->local.path[0] == 0) + /* abstract socket address is supported on Linux only */ + addrsize = strnlen(addr->local.path + 1, + sizeof(addr->local.path)) + + offsetof(struct sockaddr_un, sun_path) + 1; + else +#endif + addrsize = sizeof(addr->local); + } #endif else addrsize = 0; -- cgit v1.2.3