From: Andrew M. Kuchling Date: Thu, 5 Oct 2006 19:32:52 +0000 (+0000) Subject: [Backport r51222 | neal.norwitz -- if you hack the code to set r=NULL, X-Git-Tag: v2.4.4c1~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20cc6be1aada880f0267eaca39ebb70d0e790692;p=thirdparty%2FPython%2Fcpython.git [Backport r51222 | neal.norwitz -- if you hack the code to set r=NULL, you find that Python does print "MemoryError". There's no traceback and no indication of which line of code is responsible, but it's better than a segfault.] Handle NULL nodes while parsing. I'm not entirely sure this is correct. There might be something else that needs to be done to setup the error. Klocwork #295. --- diff --git a/Parser/parsetok.c b/Parser/parsetok.c index 1fa9739308c4..112363fee91d 100644 --- a/Parser/parsetok.c +++ b/Parser/parsetok.c @@ -197,6 +197,11 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret, } } else if (tok->encoding != NULL) { node* r = PyNode_New(encoding_decl); + if (!r) { + err_ret->error = E_NOMEM; + n = NULL; + goto done; + } r->n_str = tok->encoding; r->n_nchildren = 1; r->n_child = n; @@ -204,6 +209,7 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret, n = r; } +done: PyTokenizer_Free(tok); return n;