[Python-checkins] cpython (2.7): Issue #16404: Add checks for return value of PyInt_FromLong() in
serhiy.storchaka
python-checkins at python.org
Tue Dec 17 14:15:19 CET 2013
http://hg.python.org/cpython/rev/debdfa44f020
changeset: 88024:debdfa44f020
branch: 2.7
parent: 88021:c3c3dd78309d
user: Serhiy Storchaka <storchaka at gmail.com>
date: Tue Dec 17 15:09:45 2013 +0200
summary:
Issue #16404: Add checks for return value of PyInt_FromLong() in
sys.getwindowsversion() and ossaudiodev.setparameters().
Reported by Ned Batchelder.
files:
Modules/ossaudiodev.c | 9 +--------
Python/sysmodule.c | 4 ++++
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c
--- a/Modules/ossaudiodev.c
+++ b/Modules/ossaudiodev.c
@@ -490,7 +490,6 @@
{
int wanted_fmt, wanted_channels, wanted_rate, strict=0;
int fmt, channels, rate;
- PyObject * rv; /* return tuple (fmt, channels, rate) */
if (!PyArg_ParseTuple(args, "iii|i:setparameters",
&wanted_fmt, &wanted_channels, &wanted_rate,
@@ -532,13 +531,7 @@
/* Construct the return value: a (fmt, channels, rate) tuple that
tells what the audio hardware was actually set to. */
- rv = PyTuple_New(3);
- if (rv == NULL)
- return NULL;
- PyTuple_SET_ITEM(rv, 0, PyInt_FromLong(fmt));
- PyTuple_SET_ITEM(rv, 1, PyInt_FromLong(channels));
- PyTuple_SET_ITEM(rv, 2, PyInt_FromLong(rate));
- return rv;
+ return Py_BuildValue("(iii)", fmt, channels, rate);
}
static int
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -616,6 +616,10 @@
PyStructSequence_SET_ITEM(version, pos++, PyInt_FromLong(ver.wSuiteMask));
PyStructSequence_SET_ITEM(version, pos++, PyInt_FromLong(ver.wProductType));
+ if (PyErr_Occurred()) {
+ Py_DECREF(version);
+ return NULL;
+ }
return version;
}
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list