Mercurial > cpython-lru_cache-weakref
diff Modules/socketmodule.c @ 37979:704b80529664 legacy-trunk
Fix SF bug #1476111: SystemError in socket sendto. The AF_INET6 and
AF_PACKET cases in getsockaddrarg were missing their own checks for
tuple-ness of the address argument, which means a confusing SystemError was
raised by PyArg_ParseTuple instead.
| author | Thomas Wouters <thomas@python.org> |
|---|---|
| date | Tue, 25 Apr 2006 15:08:10 +0000 |
| parents | ea67628ddae5 |
| children | 36cd4a4ab8f7 |
line wrap: on
line diff
--- a/Modules/socketmodule.c Tue Apr 25 14:09:58 2006 +0000 +++ b/Modules/socketmodule.c Tue Apr 25 15:08:10 2006 +0000 @@ -1217,6 +1217,14 @@ int port, flowinfo, scope_id, result; addr = (struct sockaddr_in6*)&(s->sock_addr).in6; flowinfo = scope_id = 0; + if (!PyTuple_Check(args)) { + PyErr_Format( + PyExc_TypeError, + "getsockaddrarg: " + "AF_INET6 address must be tuple, not %.500s", + args->ob_type->tp_name); + return 0; + } if (!PyArg_ParseTuple(args, "eti|ii", "idna", &host, &port, &flowinfo, &scope_id)) { @@ -1319,6 +1327,14 @@ char *haddr = NULL; unsigned int halen = 0; + if (!PyTuple_Check(args)) { + PyErr_Format( + PyExc_TypeError, + "getsockaddrarg: " + "AF_PACKET address must be tuple, not %.500s", + args->ob_type->tp_name); + return 0; + } if (!PyArg_ParseTuple(args, "si|iis#", &interfaceName, &protoNumber, &pkttype, &hatype, &haddr, &halen))
