Issue 1754489: Non-portable address length calculation for AF_UNIX sockets (original) (raw)

Issue1754489

Created on 2007-07-15 23:07 by vlahan, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
addrlen_using_offsetof.patch vlahan,2007-07-15 23:07 Portable calculation of AF_UNIX address length patch
Messages (4)
msg52887 - (view) Author: Vlado Handziski (vlahan) Date: 2007-07-15 23:07
The calculation of the address length for AF_UNIX sockets in the getsockaddrarg function in socketmodule.c returns wrong values on platforms with padded struct sockaddr_un: *len_ret = len + sizeof(*addr) - sizeof(addr->sun_path); sizeof(*addr) is for example 112 on an ARM (NSLU2) platforms, while it is 110 on a i386 PC. The correct way to calculate the length is by directly using the offset of the sun_path field: *len_ret = len + offsetof(struct sockaddr_un, sun_path); as suggested in the GNU libc manual: http://www.gnu.org/software/libc/manual/html_node/Local-Socket-Example.html The correction also needs to be applied to the makesockaddr function when reversing the above addition in the case of abstract namespace sockets on linux.
msg59008 - (view) Author: Armin Rigo (arigo) * (Python committer) Date: 2007-12-27 10:50
The patch looks ok on 2.6, I recommend checking it there. (Due to line number changes in socketmodule.c, the patch gives a warning, but it is still otherwise up-to-date.)
msg61390 - (view) Author: Vlado Handziski (vlahan) Date: 2008-01-21 13:25
So what is the procedure for checking in the patch? I don't have a commit access to the repository to do it myself...
msg61580 - (view) Author: Armin Rigo (arigo) * (Python committer) Date: 2008-01-23 14:07
Checked in as r60214.
History
Date User Action Args
2022-04-11 14:56:25 admin set github: 45206
2008-01-23 14:07:48 arigo set status: open -> closedresolution: acceptedmessages: +
2008-01-21 13:25:23 vlahan set messages: +
2007-12-27 10:50:14 arigo set nosy: + arigomessages: +
2007-12-11 09:28:01 christian.heimes set assignee: loewisnosy: + loewis
2007-12-10 23:11:43 christian.heimes set type: behaviorversions: + Python 2.6, Python 3.0
2007-07-15 23:07:19 vlahan create