py/builtinimport: Raise exception on empty module name.
To prevent a crash returning MP_OBJ_NULL. A test is added for this case.
This commit is contained in:
parent
6b3404f25e
commit
a7bc4d1a14
|
@ -334,6 +334,10 @@ mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args) {
|
||||||
mod_len = new_mod_l;
|
mod_len = new_mod_l;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mod_len == 0) {
|
||||||
|
mp_raise_ValueError(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
// check if module already exists
|
// check if module already exists
|
||||||
qstr module_name_qstr = mp_obj_str_get_qstr(module_name);
|
qstr module_name_qstr = mp_obj_str_get_qstr(module_name);
|
||||||
mp_obj_t module_obj = mp_module_get(module_name_qstr);
|
mp_obj_t module_obj = mp_module_get(module_name_qstr);
|
||||||
|
|
|
@ -9,6 +9,12 @@ try:
|
||||||
except TypeError:
|
except TypeError:
|
||||||
print('TypeError')
|
print('TypeError')
|
||||||
|
|
||||||
|
# module name should not be empty
|
||||||
|
try:
|
||||||
|
__import__("")
|
||||||
|
except ValueError:
|
||||||
|
print('ValueError')
|
||||||
|
|
||||||
# level argument should be non-negative
|
# level argument should be non-negative
|
||||||
try:
|
try:
|
||||||
__import__('xyz', None, None, None, -1)
|
__import__('xyz', None, None, None, -1)
|
||||||
|
|
Loading…
Reference in New Issue