[ python-Bugs-764437 ] AF_UNIX sockets do not handle Linux-specific
addressing
SourceForge.net
noreply at sourceforge.net
Tue Nov 25 03:13:32 EST 2003
Bugs item #764437, was opened at 2003-07-02 17:13
Message generated for change (Comment added) made by anthonybaxter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=764437&group_id=5470
Category: Python Library
Group: Platform-specific
Status: Open
Resolution: None
Priority: 5
Submitted By: Paul Pergamenshchik (ppergame)
Assigned to: Nobody/Anonymous (nobody)
Summary: AF_UNIX sockets do not handle Linux-specific addressing
Initial Comment:
As described in unix(7) manpage, Linux allows for
special "kernel namespace" AF_UNIX sockets defined.
With such sockets, the first byte of the path is \x00,
and the rest is the address. These sockets do not show
up in the filesystem.
socketmodule.c:makesockaddr (as called by recvfrom)
uses code like
PyString_FromString(a->sun_path)
to retrieve the address. This is incorrect -- on Linux, if
the first byte of a->sun_path is null, the function should
use PyString_FromStringAndSize to retrieve the full 108-
byte buffer.
I am not entirely sure that this is the only thing that
needs to be fixed, but bind() and sendto() work with
these sort of socket paths just fine.
----------------------------------------------------------------------
>Comment By: Anthony Baxter (anthonybaxter)
Date: 2003-11-25 19:13
Message:
Logged In: YES
user_id=29957
Eek. What a totally mental design decision on the part of
the Linux kernel developers. Is there a magic C preprocessor
symbol we can use to detect that this insanity is available?
(FWIW, Perl also has problems with this:
http://www.alexhudson.com/code/abstract-sockets-and-perl
)
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=764437&group_id=5470
More information about the Python-bugs-list
mailing list