summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Modules/socketmodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tools/python3/Modules/socketmodule.c')
-rw-r--r--contrib/tools/python3/Modules/socketmodule.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/contrib/tools/python3/Modules/socketmodule.c b/contrib/tools/python3/Modules/socketmodule.c
index 6df7401133a..becdf9af718 100644
--- a/contrib/tools/python3/Modules/socketmodule.c
+++ b/contrib/tools/python3/Modules/socketmodule.c
@@ -149,7 +149,7 @@ listen([n]) -- start listening for incoming connections\n\
recv(buflen[, flags]) -- receive data\n\
recv_into(buffer[, nbytes[, flags]]) -- receive data (into a buffer)\n\
recvfrom(buflen[, flags]) -- receive data and sender\'s address\n\
-recvfrom_into(buffer[, nbytes, [, flags])\n\
+recvfrom_into(buffer[, nbytes, [, flags]])\n\
-- receive data and sender\'s address (into a buffer)\n\
sendall(data[, flags]) -- send all data\n\
send(data[, flags]) -- send data, may not send all of it\n\
@@ -4582,6 +4582,7 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
}
if (PySys_Audit("socket.sendto", "OO", s, addro) < 0) {
+ PyBuffer_Release(&pbuf);
return NULL;
}
@@ -4737,11 +4738,13 @@ sock_sendmsg(PySocketSockObject *s, PyObject *args)
if (cmsg_arg == NULL)
ncmsgs = 0;
else {
- if ((cmsg_fast = PySequence_Fast(cmsg_arg,
- "sendmsg() argument 2 must be an "
- "iterable")) == NULL)
+ cmsg_fast = PySequence_Tuple(cmsg_arg);
+ if (cmsg_fast == NULL) {
+ PyErr_SetString(PyExc_TypeError,
+ "sendmsg() argument 2 must be an iterable");
goto finally;
- ncmsgs = PySequence_Fast_GET_SIZE(cmsg_fast);
+ }
+ ncmsgs = PyTuple_GET_SIZE(cmsg_fast);
}
#ifndef CMSG_SPACE
@@ -4761,8 +4764,9 @@ sock_sendmsg(PySocketSockObject *s, PyObject *args)
controllen = controllen_last = 0;
while (ncmsgbufs < ncmsgs) {
size_t bufsize, space;
+ PyObject *item = PyTuple_GET_ITEM(cmsg_fast, ncmsgbufs);
- if (!PyArg_Parse(PySequence_Fast_GET_ITEM(cmsg_fast, ncmsgbufs),
+ if (!PyArg_Parse(item,
"(iiy*):[sendmsg() ancillary data items]",
&cmsgs[ncmsgbufs].level,
&cmsgs[ncmsgbufs].type,
@@ -6798,7 +6802,7 @@ socket_getaddrinfo(PyObject *self, PyObject *args, PyObject* kwargs)
if (PySys_Audit("socket.getaddrinfo", "OOiii",
hobj, pobj, family, socktype, protocol) < 0) {
- return NULL;
+ goto err;
}
memset(&hints, 0, sizeof(hints));