summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2014-02-12 08:52:07 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2014-02-12 08:52:07 (GMT)
commit1d19f97eedb69096933917e35e18c49003bd9e39 (patch)
treea42d401e29eae1dfac7e89978325a52fa9f64715 /Modules
parentee09d7c098ae4e52a9110ea0e1b55de3996c59f5 (diff)
downloadcpython-1d19f97eedb69096933917e35e18c49003bd9e39.zip
cpython-1d19f97eedb69096933917e35e18c49003bd9e39.tar.gz
cpython-1d19f97eedb69096933917e35e18c49003bd9e39.tar.bz2
Issue #17671: Fixed a crash when use non-initialized io.BufferedRWPair.
Based on patch by Stephen Tu.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_io/bufferedio.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index 411755c..758edf4 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -2129,9 +2129,14 @@ bufferedrwpair_dealloc(rwpair *self)
static PyObject *
_forward_call(buffered *self, const char *name, PyObject *args)
{
- PyObject *func = PyObject_GetAttrString((PyObject *)self, name);
- PyObject *ret;
+ PyObject *func, *ret;
+ if (self == NULL) {
+ PyErr_SetString(PyExc_ValueError,
+ "I/O operation on uninitialized object");
+ return NULL;
+ }
+ func = PyObject_GetAttrString((PyObject *)self, name);
if (func == NULL) {
PyErr_SetString(PyExc_AttributeError, name);
return NULL;