-
- Downloads
gh-94821: Fix autobind of empty unix domain address (GH-94826) (GH-94875)
When binding a unix socket to an empty address on Linux, the socket is automatically bound to an available address in the abstract namespace. >>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) >>> s.bind("") >>> s.getsockname() b'\x0075499' Since python 3.9, the socket is bound to the one address: >>> s.getsockname() b'\x00' And trying to bind multiple sockets will fail with: Traceback (most recent call last): File "/home/nsoffer/src/cpython/Lib/test/test_socket.py", line 5553, in testAutobind s2.bind("") OSError: [Errno 98] Address already in use Added 2 tests: - Auto binding empty address on Linux - Failing to bind an empty address on other platforms Fixes f6b3a07b (bpo-44493: Add missing terminated NUL in sockaddr_un's length (GH-26866) (cherry picked from commit c22f1342) Co-authored-by:Nir Soffer <nsoffer@redhat.com>
Showing
- Lib/test/test_socket.py 19 additions, 0 deletionsLib/test/test_socket.py
- Misc/NEWS.d/next/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst 2 additions, 0 deletions...ext/Library/2022-07-14-00-43-52.gh-issue-94821.e17ghU.rst
- Modules/socketmodule.c 4 additions, 2 deletionsModules/socketmodule.c
Loading
Please register or sign in to comment