Message117540
Module/socketmodule.c incorrectly treats both sockaddr_in6->sin6_flowinfo and sockaddr_in6->sin6_scope_id as signed integers. They are 32-bit unsigned integers (even though sin6_flowinfo is just 20 bits).
sin6_flowinfo also lacks the necessary endian conversions when an IPv6 sockaddr tuple is parsed or returned. This makes it difficult to deal with sockets using sin6_flowinfo and deviates from RFCs. With the use of a signed int it also makes impossible to use flowinfo values that are larger than 2^31 if converted to little endian byte order (socketmodule.c raising an overflow exception).
sin6_scope_id has meaning only on the local machine (as an interface index), thus no endian conversion is needed for it. |
|
Date |
User |
Action |
Args |
2010-09-28 18:35:46 | vnebehaj | set | recipients:
+ vnebehaj |
2010-09-28 18:35:46 | vnebehaj | set | messageid: <1285698946.58.0.377750793336.issue9975@psf.upfronthosting.co.za> |
2010-09-28 18:35:44 | vnebehaj | link | issue9975 messages |
2010-09-28 18:35:44 | vnebehaj | create | |
|