diff options
| author | Benjamin Peterson <benjamin@python.org> | 2010-04-03 00:57:33 (GMT) |
|---|---|---|
| committer | Benjamin Peterson <benjamin@python.org> | 2010-04-03 00:57:33 (GMT) |
| commit | bea424af98468a7fc5c505c949218e22862d2b40 (patch) | |
| tree | 6990df25667157e2a0d4f50f5e2ac0887810f046 /Objects/fileobject.c | |
| parent | 3928276e6442f52b0a2717df8d8441dbe03ccd53 (diff) | |
| download | cpython-bea424af98468a7fc5c505c949218e22862d2b40.zip cpython-bea424af98468a7fc5c505c949218e22862d2b40.tar.gz cpython-bea424af98468a7fc5c505c949218e22862d2b40.tar.bz2 | |
more _PyString_Resize error checking
Diffstat (limited to 'Objects/fileobject.c')
| -rw-r--r-- | Objects/fileobject.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/Objects/fileobject.c b/Objects/fileobject.c index 7c65b98..f479501 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -1102,8 +1102,8 @@ file_read(PyFileObject *f, PyObject *args) break; } } - if (bytesread != buffersize) - _PyString_Resize(&v, bytesread); + if (bytesread != buffersize && _PyString_Resize(&v, bytesread)) + return NULL; return v; } @@ -1356,8 +1356,8 @@ getline_via_fgets(PyFileObject *f, FILE *fp) /* overwrite the trailing null byte */ pvfree = BUF(v) + (prev_v_size - 1); } - if (BUF(v) + total_v_size != p) - _PyString_Resize(&v, p - BUF(v)); + if (BUF(v) + total_v_size != p && _PyString_Resize(&v, p - BUF(v))) + return NULL; return v; #undef INITBUFSIZE #undef MAXBUFSIZE @@ -1469,8 +1469,8 @@ get_line(PyFileObject *f, int n) } used_v_size = buf - BUF(v); - if (used_v_size != total_v_size) - _PyString_Resize(&v, used_v_size); + if (used_v_size != total_v_size && _PyString_Resize(&v, used_v_size)) + return NULL; return v; } @@ -1536,8 +1536,10 @@ PyFile_GetLine(PyObject *f, int n) "EOF when reading a line"); } else if (s[len-1] == '\n') { - if (result->ob_refcnt == 1) - _PyString_Resize(&result, len-1); + if (result->ob_refcnt == 1) { + if (_PyString_Resize(&result, len-1)) + return NULL; + } else { PyObject *v; v = PyString_FromStringAndSize(s, len-1); |
