[Python-checkins] r62468 - python/branches/tlee-ast-optimize/Python/optimize.c

thomas.lee python-checkins at python.org
Wed Apr 23 17:58:58 CEST 2008


Author: thomas.lee
Date: Wed Apr 23 17:58:57 2008
New Revision: 62468

Log:
Ensure Yield.value is not accessed without a NULL check.

Modified:
   python/branches/tlee-ast-optimize/Python/optimize.c

Modified: python/branches/tlee-ast-optimize/Python/optimize.c
==============================================================================
--- python/branches/tlee-ast-optimize/Python/optimize.c	(original)
+++ python/branches/tlee-ast-optimize/Python/optimize.c	Wed Apr 23 17:58:57 2008
@@ -623,14 +623,15 @@
 optimize_yield(expr_ty* expr_ptr, PyArena* arena)
 {
     expr_ty expr = *expr_ptr;
-    if (expr->v.Yield.value != NULL)
+    if (expr->v.Yield.value != NULL) {
         if (!optimize_expr(&expr->v.Yield.value, arena))
             return 0;
-    /* "yield None" becomes "yield" */
-    if (expr->v.Yield.value->kind == Name_kind) {
-        PyObject* id = expr->v.Yield.value->v.Name.id;
-        if (strcmp(PyString_AS_STRING(id), "None") == 0)
-                expr->v.Yield.value = NULL;
+        /* "yield None" becomes "yield" */
+        if (expr->v.Yield.value->kind == Name_kind) {
+            PyObject* id = expr->v.Yield.value->v.Name.id;
+            if (strcmp(PyString_AS_STRING(id), "None") == 0)
+                    expr->v.Yield.value = NULL;
+        }
     }
     return 1;
 }


More information about the Python-checkins mailing list