unix/main: Add NLR scope for checking module __path__.

If the module has a user-defined getattr, this could raise.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This commit is contained in:
Jim Mussared 2023-05-24 17:06:08 +10:00 committed by Damien George
parent 99a0c45aef
commit 952a78f88a
1 changed files with 2 additions and 1 deletions

View File

@ -664,8 +664,9 @@ MP_NOINLINE int main_(int argc, char **argv) {
return handle_uncaught_exception(nlr.ret_val) & 0xff;
}
// If this module is a package, see if it has a `__main__.py`.
mp_obj_t dest[2];
mp_load_method_maybe(mod, MP_QSTR___path__, dest);
mp_load_method_protected(mod, MP_QSTR___path__, dest, true);
if (dest[0] != MP_OBJ_NULL && !subpkg_tried) {
subpkg_tried = true;
vstr_t vstr;