From: Thomas Wouters Date: Tue, 25 Apr 2006 15:08:10 +0000 (+0000) Subject: Fix SF bug #1476111: SystemError in socket sendto. The AF_INET6 and X-Git-Tag: v2.5a2~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0452049b6f3c8f78193b0f83072b357264dbcb1c;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 39a0240c5c3c..b77f41e9b248 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -1217,6 +1217,14 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, 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 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, 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))