Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 39135:12e973bdfeee legacy-trunk
Fix more memory allocation issues found with failmalloc.
| author | Neal Norwitz <nnorwitz@gmail.com> |
|---|---|
| date | Sat, 22 Jul 2006 16:20:49 +0000 |
| parents | 7c09b66f04bd |
| children | 9a1288d8200f |
line wrap: on
line diff
--- a/Python/pythonrun.c Fri Jul 21 22:44:07 2006 +0000 +++ b/Python/pythonrun.c Sat Jul 22 16:20:49 2006 +0000 @@ -746,6 +746,11 @@ ps2 = PyString_AsString(w); } arena = PyArena_New(); + if (arena == NULL) { + Py_XDECREF(v); + Py_XDECREF(w); + return -1; + } mod = PyParser_ASTFromFile(fp, filename, Py_single_input, ps1, ps2, flags, &errcode, arena); @@ -1203,9 +1208,8 @@ PyObject *locals, PyCompilerFlags *flags) { PyObject *ret = NULL; + mod_ty mod; PyArena *arena = PyArena_New(); - mod_ty mod; - if (arena == NULL) return NULL; @@ -1221,9 +1225,8 @@ PyObject *locals, int closeit, PyCompilerFlags *flags) { PyObject *ret; + mod_ty mod; PyArena *arena = PyArena_New(); - mod_ty mod; - if (arena == NULL) return NULL; @@ -1291,8 +1294,12 @@ PyCompilerFlags *flags) { PyCodeObject *co; + mod_ty mod; PyArena *arena = PyArena_New(); - mod_ty mod = PyParser_ASTFromString(str, filename, start, flags, arena); + if (arena == NULL) + return NULL; + + mod = PyParser_ASTFromString(str, filename, start, flags, arena); if (mod == NULL) { PyArena_Free(arena); return NULL; @@ -1311,8 +1318,12 @@ Py_SymtableString(const char *str, const char *filename, int start) { struct symtable *st; + mod_ty mod; PyArena *arena = PyArena_New(); - mod_ty mod = PyParser_ASTFromString(str, filename, start, NULL, arena); + if (arena == NULL) + return NULL; + + mod = PyParser_ASTFromString(str, filename, start, NULL, arena); if (mod == NULL) { PyArena_Free(arena); return NULL;
