diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-08-31 18:17:31 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-09-06 08:45:44 +0200 |
commit | 96ba6190d6743b7ac4449938b287547124cce926 (patch) | |
tree | 8d5d8a965e35e97e6ac034047224e6106cf0a69a /nxcomp | |
parent | d3f97cea2ca08f0fe5e1eafb17476e813acd204a (diff) | |
download | nx-libs-96ba6190d6743b7ac4449938b287547124cce926.tar.gz nx-libs-96ba6190d6743b7ac4449938b287547124cce926.tar.bz2 nx-libs-96ba6190d6743b7ac4449938b287547124cce926.zip |
nxcomp/src/{Loop,Proxy}.cpp: On Debian/kFreeBSD (and other *BSD variants) the sockaddr_un.sun_path property is 104 chars long, not 108. Hard-coding Unix domain sockets in nxcomp the string length 104.
Fixes ArcticaProject/nx-libs#507.
Diffstat (limited to 'nxcomp')
-rw-r--r-- | nxcomp/src/Loop.cpp | 8 | ||||
-rw-r--r-- | nxcomp/src/Proxy.cpp | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/nxcomp/src/Loop.cpp b/nxcomp/src/Loop.cpp index b6c82a2b4..f86ee2a4f 100644 --- a/nxcomp/src/Loop.cpp +++ b/nxcomp/src/Loop.cpp @@ -3810,7 +3810,15 @@ int SetupAuthInstance() launchdAddrUnix.sun_family = AF_UNIX; + #ifdef __linux__ const int launchdAddrNameLength = 108; + #else + /* POSIX/SUS does not specify a length. + * BSD derivatives generally support 104 bytes, other systems may be more constrained. + * If you happen to run into such systems, extend this section with the appropriate limit. + */ + const int launchdAddrNameLength = 104; + #endif int success = -1; diff --git a/nxcomp/src/Proxy.cpp b/nxcomp/src/Proxy.cpp index 5529de021..dabf7532e 100644 --- a/nxcomp/src/Proxy.cpp +++ b/nxcomp/src/Proxy.cpp @@ -6294,7 +6294,15 @@ int Proxy::handleNewGenericConnectionFromProxyUnix(int channelId, T_channel_type serverAddrUnix.sun_family = AF_UNIX; + #ifdef __linux__ const int serverAddrNameLength = 108; + #else + /* POSIX/SUS does not specify a length. + * BSD derivatives generally support 104 bytes, other systems may be more constrained. + * If you happen to run into such systems, extend this section with the appropriate limit. + */ + const int serverAddrNameLength = 104; + #endif strncpy(serverAddrUnix.sun_path, path, serverAddrNameLength); |