From 20cc6be1aada880f0267eaca39ebb70d0e790692 Mon Sep 17 00:00:00 2001 From: "Andrew M. Kuchling" Date: Thu, 5 Oct 2006 19:32:52 +0000 Subject: [PATCH] [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. --- Parser/parsetok.c | 6 ++++++ 1 file changed, 6 insertions(+) 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; -- 2.47.3