Discussion:
[Python-3000-checkins] r66694 - in python/branches/py3k: Modules/_bytesio.c Modules/_struct.c
benjamin.peterson
2008-09-30 02:18:09 UTC
Permalink
Author: benjamin.peterson
Date: Tue Sep 30 04:18:09 2008
New Revision: 66694

Log:
Merged revisions 66693 via svnmerge from
svn+ssh://pythondev at svn.python.org/python/trunk

........
r66693 | benjamin.peterson | 2008-09-29 21:11:07 -0500 (Mon, 29 Sep 2008) | 4 lines

Victor Stinner's patches to check the return result of PyLong_Ssize_t

reviewed by Amaury
........


Modified:
python/branches/py3k/ (props changed)
python/branches/py3k/Modules/_bytesio.c
python/branches/py3k/Modules/_struct.c

Modified: python/branches/py3k/Modules/_bytesio.c
==============================================================================
--- python/branches/py3k/Modules/_bytesio.c (original)
+++ python/branches/py3k/Modules/_bytesio.c Tue Sep 30 04:18:09 2008
@@ -221,6 +221,8 @@

if (PyLong_Check(arg)) {
size = PyLong_AsSsize_t(arg);
+ if (size == -1 && PyErr_Occurred())
+ return NULL;
}
else if (arg == Py_None) {
/* Read until EOF is reached, by default. */
@@ -288,6 +290,8 @@

if (PyLong_Check(arg)) {
size = PyLong_AsSsize_t(arg);
+ if (size == -1 && PyErr_Occurred())
+ return NULL;
}
else if (arg == Py_None) {
/* No size limit, by default. */
@@ -332,6 +336,8 @@

if (PyLong_Check(arg)) {
maxsize = PyLong_AsSsize_t(arg);
+ if (maxsize == -1 && PyErr_Occurred())
+ return NULL;
}
else if (arg == Py_None) {
/* No size limit, by default. */
@@ -415,6 +421,8 @@

if (PyLong_Check(arg)) {
size = PyLong_AsSsize_t(arg);
+ if (size == -1 && PyErr_Occurred())
+ return NULL;
}
else if (arg == Py_None) {
/* Truncate to current position if no argument is passed. */

Modified: python/branches/py3k/Modules/_struct.c
==============================================================================
--- python/branches/py3k/Modules/_struct.c (original)
+++ python/branches/py3k/Modules/_struct.c Tue Sep 30 04:18:09 2008
@@ -1786,6 +1786,8 @@

/* Extract the offset from the first argument */
offset = PyLong_AsSsize_t(PyTuple_GET_ITEM(args, 1));
+ if (offset == -1 && PyErr_Occurred())
+ return NULL;

/* Support negative offsets. */
if (offset < 0)

Loading...