diff options
| author | Dan Halbert <halbert@adafruit.com> | 2019-06-26 20:39:50 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-06-26 20:39:50 -0400 |
| commit | c562b1923885d67fd349e48da841715f3a5522dd (patch) | |
| tree | 28d712c6767304b37ff09fa8abcc7176ab8b5385 /py/emitglue.c | |
| parent | f77abbd96095890a016ff6acc183b6de4d7ceb26 (diff) | |
| parent | fe507db45f7fa21c6de4aafb288a7f83d9903f71 (diff) | |
Validate mpy load
Diffstat (limited to 'py/emitglue.c')
| -rw-r--r-- | py/emitglue.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/py/emitglue.c b/py/emitglue.c index 74bf8ddca..7708689dd 100644 --- a/py/emitglue.c +++ b/py/emitglue.c @@ -142,11 +142,12 @@ mp_obj_t mp_make_function_from_raw_code(const mp_raw_code_t *rc, mp_obj_t def_ar fun = mp_obj_new_fun_asm(rc->n_pos_args, rc->data.u_native.fun_data, rc->data.u_native.type_sig); break; #endif - default: - // rc->kind should always be set and BYTECODE is the only remaining case - assert(rc->kind == MP_CODE_BYTECODE); + case MP_CODE_BYTECODE: fun = mp_obj_new_fun_bc(def_args, def_kw_args, rc->data.u_byte.bytecode, rc->data.u_byte.const_table); break; + default: + // All other kinds are invalid. + mp_raise_RuntimeError(translate("Corrupt raw code")); } // check for generator functions and if so wrap in generator object |
