From: Victor Stinner Date: Fri, 7 Jun 2024 15:17:06 +0000 (+0200) Subject: [3.12] gh-120155: Fix optimize_and_assemble_code_unit() error handling (#120231) X-Git-Tag: v3.12.5~250 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b3b5278475b31713fa86eaddfcbf4f22859ce59b;p=thirdparty%2FPython%2Fcpython.git [3.12] gh-120155: Fix optimize_and_assemble_code_unit() error handling (#120231) gh-120155: Fix optimize_and_assemble_code_unit() error handling Don't use 'g' before it's being initialized: don't use the 'error' label if consts_dict_keys_inorder() failed. Fix the Coverity issue: Error: UNINIT (CWE-457): Python-3.12.2/Python/compile.c:7670:5: skipped_decl: Jumping over declaration of ""g"". Python-3.12.2/Python/compile.c:7714:5: uninit_use_in_call: Using uninitialized value ""g.g_block_list"" when calling ""_PyCfgBuilder_Fini"". Python-3.12.2/Python/compile.c:7714:5: uninit_use_in_call: Using uninitialized value ""g.g_entryblock"" when calling ""_PyCfgBuilder_Fini"". 7712| Py_XDECREF(consts); 7713| instr_sequence_fini(&optimized_instrs); 7714|-> _PyCfgBuilder_Fini(&g); 7715| return co; 7716| } --- diff --git a/Python/compile.c b/Python/compile.c index 40335f6dc30a..0cd8d6082ebf 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -7682,7 +7682,7 @@ optimize_and_assemble_code_unit(struct compiler_unit *u, PyObject *const_cache, PyCodeObject *co = NULL; PyObject *consts = consts_dict_keys_inorder(u->u_metadata.u_consts); if (consts == NULL) { - goto error; + return NULL; } cfg_builder g; if (instr_sequence_to_cfg(&u->u_instr_sequence, &g) < 0) {