aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--py/builtinimport.c4
-rw-r--r--tests/import/builtin_import.py6
2 files changed, 10 insertions, 0 deletions
diff --git a/py/builtinimport.c b/py/builtinimport.c
index b9f6c2ab2..9d91b2059 100644
--- a/py/builtinimport.c
+++ b/py/builtinimport.c
@@ -334,6 +334,10 @@ mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args) {
mod_len = new_mod_l;
}
+ if (mod_len == 0) {
+ mp_raise_ValueError(NULL);
+ }
+
// check if module already exists
qstr module_name_qstr = mp_obj_str_get_qstr(module_name);
mp_obj_t module_obj = mp_module_get(module_name_qstr);
diff --git a/tests/import/builtin_import.py b/tests/import/builtin_import.py
index 088f631fc..157da9839 100644
--- a/tests/import/builtin_import.py
+++ b/tests/import/builtin_import.py
@@ -9,6 +9,12 @@ try:
except TypeError:
print('TypeError')
+# module name should not be empty
+try:
+ __import__("")
+except ValueError:
+ print('ValueError')
+
# level argument should be non-negative
try:
__import__('xyz', None, None, None, -1)