gh-101659: initialize stack variable _sharedexception by gaogaotiantian · Pull Request #103048 · python/cpython (original) (raw)

In ./Modules/_xxsubinterpretersmodule.c a variable _sharedexception exc on stack is declared introduced in #102659. The variable is not initialized.

In _run_script, it's possible that the function hits an error and goes to error label without properly initializing the variable. Then _sharedexception_bind can also potentially error out to trigger _sharedexception_clear(sharedexc), which may free the uninitialized pointer. I have not found an exploit on this, but there's a potential path. Also the fix is so easy and cheap so I think we can just initialize the variable with no_exception (basically {0}).

Oh BTW, gcc complains with the possible unitialized variable.

I would guess @ericsnowcurrently is the right person to review this? Thanks!