From: Christian Heimes Date: Thu, 8 Sep 2016 22:20:13 +0000 (+0200) Subject: Add NULL check for gen->gi_code in gen_send_ex() X-Git-Tag: v3.6.0b1~238 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=884332b45a436a90c5a36c3d6288566fb7ce3456;p=thirdparty%2FPython%2Fcpython.git Add NULL check for gen->gi_code in gen_send_ex() _PyGen_Finalize() checks that gen->gi_code is not NULL before it accesses the flags of the code object. This means that the flag could be NULL. It passes down the generatore to gen_close() and gen_send_ex(). gen_send_ex() did not check for gen->gi_code != NULL. CID 1297900 --- diff --git a/Objects/genobject.c b/Objects/genobject.c index 562d41d674c5..19d388eeebfe 100644 --- a/Objects/genobject.c +++ b/Objects/genobject.c @@ -167,7 +167,7 @@ gen_send_ex(PyGenObject *gen, PyObject *arg, int exc, int closing) /* Check for __future__ generator_stop and conditionally turn * a leaking StopIteration into RuntimeError (with its cause * set appropriately). */ - if (((PyCodeObject *)gen->gi_code)->co_flags & + if (gen->gi_code != NULL && ((PyCodeObject *)gen->gi_code)->co_flags & (CO_FUTURE_GENERATOR_STOP | CO_COROUTINE | CO_ITERABLE_COROUTINE)) { PyObject *exc, *val, *val2, *tb;