Commit 0ff028bc authored by Antoine Pitrou's avatar Antoine Pitrou

Issue #5421: Fix misleading error message when one of socket.sendto()'s

arguments has the wrong type.  Patch by Nikita Vetoshkin.
parent 34f19916
...@@ -823,6 +823,7 @@ Alexandre Vassalotti ...@@ -823,6 +823,7 @@ Alexandre Vassalotti
Frank Vercruesse Frank Vercruesse
Mike Verdone Mike Verdone
Jaap Vermeulen Jaap Vermeulen
Nikita Vetoshkin
Al Vezza Al Vezza
Jacques A. Vidrine Jacques A. Vidrine
John Viega John Viega
......
...@@ -40,6 +40,9 @@ Core and Builtins ...@@ -40,6 +40,9 @@ Core and Builtins
Library Library
------- -------
- Issue #5421: Fix misleading error message when one of socket.sendto()'s
arguments has the wrong type. Patch by Nikita Vetoshkin.
- Issue #11401: fix handling of headers with no value; this fixes a regression - Issue #11401: fix handling of headers with no value; this fixes a regression
relative to Python2 and the result is now the same as it was in Python2. relative to Python2 and the result is now the same as it was in Python2.
......
...@@ -2647,17 +2647,28 @@ sock_sendto(PySocketSockObject *s, PyObject *args) ...@@ -2647,17 +2647,28 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
Py_buffer pbuf; Py_buffer pbuf;
PyObject *addro; PyObject *addro;
char *buf; char *buf;
Py_ssize_t len; Py_ssize_t len, arglen;
sock_addr_t addrbuf; sock_addr_t addrbuf;
int addrlen, n = -1, flags, timeout; int addrlen, n = -1, flags, timeout;
flags = 0; flags = 0;
if (!PyArg_ParseTuple(args, "y*O:sendto", &pbuf, &addro)) { arglen = PyTuple_Size(args);
PyErr_Clear(); switch (arglen) {
if (!PyArg_ParseTuple(args, "y*iO:sendto", case 2:
&pbuf, &flags, &addro)) PyArg_ParseTuple(args, "y*O:sendto", &pbuf, &addro);
return NULL; break;
case 3:
PyArg_ParseTuple(args, "y*iO:sendto",
&pbuf, &flags, &addro);
break;
default:
PyErr_Format(PyExc_TypeError,
"sendto() takes 2 or 3 arguments (%d given)",
arglen);
} }
if (PyErr_Occurred())
return NULL;
buf = pbuf.buf; buf = pbuf.buf;
len = pbuf.len; len = pbuf.len;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment