[erlang-questions] unix domain sockets with abstract namespace: can't use all 108 bytes

Raimo Niskanen raimo+erlang-questions@REDACTED
Wed Mar 29 15:29:27 CEST 2017


On Wed, Mar 29, 2017 at 02:08:42PM +1300, Richard A. O'Keefe wrote:
> 
> > On 28/03/2017, at 11:05 PM, Raimo Niskanen <raimo+erlang-questions@REDACTED> wrote:
> > I see no good way to know for all platforms if the address is supposed to
> > be zero terminated or not.  Linux utilizes the special case that if the
> > first byte is zero then it is not zero terminated.  I do not know if that
> > is a safe indicator on all platforms.
> 
> The Linux manual page is quite specific:
>   "a Unix domain socket can be bound to a >>>null-terminated<<<
>    file system pathname"
> 
>   "an abstract socket address" begins with a NUL byte. "All of the
>   remaining bytes define the 'name' of the socket."  "The abstract
>   socket namespace is a non-portable Linux extension."
> 
> Sounds like any "fix" in Erlang's guts would need to be Linux-specific
> and leading NUL bytes should probably be reported as errors on other
> systems.

That is uncomfortable since the spirit of configure tests is to test for
features and to not rely on a particular system name implying a feature.

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list