Issue1754489
Created on 2007-07-15 23:07 by vlahan, last changed 2008-01-23 14:07 by arigo.
| File name |
Uploaded |
Description |
Edit |
Remove |
|
addrlen_using_offsetof.patch
|
vlahan,
2007-07-15 23:07
|
Portable calculation of AF_UNIX address length patch |
|
|
|
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) |
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) |
Date: 2008-01-23 14:07 |
|
Checked in as r60214.
|
|
| Date |
User |
Action |
Args |
| 2008-01-23 14:07:48 | arigo | set | status: open -> closed resolution: accepted messages:
+ msg61580 |
| 2008-01-21 13:25:23 | vlahan | set | messages:
+ msg61390 |
| 2007-12-27 10:50:14 | arigo | set | nosy:
+ arigo messages:
+ msg59008 |
| 2007-12-11 09:28:01 | christian.heimes | set | assignee: loewis nosy:
+ loewis |
| 2007-12-10 23:11:43 | christian.heimes | set | type: behavior versions:
+ Python 2.6, Python 3.0 |
| 2007-07-15 23:07:19 | vlahan | create | |
|