Bug 212167 - listen() system call succeeds for a locally bound UNIX-domain datagram-oriented socket
Summary: listen() system call succeeds for a locally bound UNIX-domain datagram-orient...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 10.3-STABLE
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-bugs mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-26 03:21 UTC by Arseny Vakhrushev
Modified: 2017-04-23 18:18 UTC (History)
0 users

See Also:


Attachments
Simple program that illustrates the bug (561 bytes, text/plain)
2016-08-26 03:21 UTC, Arseny Vakhrushev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Arseny Vakhrushev 2016-08-26 03:21:44 UTC
Created attachment 174083 [details]
Simple program that illustrates the bug

FreeBSD 10.3-RELEASE-p4:

While messing with UNIX-domain sockets (AF_LOCAL), I've noticed that the listen() system call succeeds for a locally bound datagram-oriented (SOCK_DGRAM) socket on FreeBSD while legitimately failing on other systems since datagram sockets can't be in a listening state. Seemed like not a big deal first but eventually led to some undefined behaviour (which I wasn't able to reproduce as a separate test-case unfortunately).

Nevertheless, expected behaviour would be to fail with EOPNOTSUPP or a similar error code.

Also, please note that no such unexpected behaviour is observed for UDP sockets (AF_INET and AF_INET6). The bug seems to affect only UNIX sockets (AF_LOCAL). See attached a simple program that illustrates the bug.