[Python-checkins] cpython (3.3): Issue #18552: Check return value of PyArena_AddPyObject() in obj2ast_object().
christian.heimes
python-checkins at python.org
Sat Jul 27 00:33:47 CEST 2013
http://hg.python.org/cpython/rev/65121aa79ab3
changeset: 84855:65121aa79ab3
branch: 3.3
parent: 84852:d14f40c87438
user: Christian Heimes <christian at cheimes.de>
date: Sat Jul 27 00:33:13 2013 +0200
summary:
Issue #18552: Check return value of PyArena_AddPyObject() in obj2ast_object().
files:
Misc/NEWS | 3 +++
Parser/asdl_c.py | 10 +++++++---
Python/Python-ast.c | 10 +++++++---
3 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
Core and Builtins
-----------------
+- Issue #18552: Check return value of PyArena_AddPyObject() in
+ obj2ast_object().
+
- Issue #18560: Fix potential NULL pointer dereference in sum().
- Issue #15905: Fix theoretical buffer overflow in handling of sys.argv[0],
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -834,9 +834,13 @@
{
if (obj == Py_None)
obj = NULL;
- if (obj)
- PyArena_AddPyObject(arena, obj);
- Py_XINCREF(obj);
+ if (obj) {
+ if (PyArena_AddPyObject(arena, obj) < 0) {
+ *out = NULL;
+ return -1;
+ }
+ Py_INCREF(obj);
+ }
*out = obj;
return 0;
}
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -688,9 +688,13 @@
{
if (obj == Py_None)
obj = NULL;
- if (obj)
- PyArena_AddPyObject(arena, obj);
- Py_XINCREF(obj);
+ if (obj) {
+ if (PyArena_AddPyObject(arena, obj) < 0) {
+ *out = NULL;
+ return -1;
+ }
+ Py_INCREF(obj);
+ }
*out = obj;
return 0;
}
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list