summaryrefslogtreecommitdiffstatshomepage
path: root/extmod/modure.c
diff options
context:
space:
mode:
Diffstat (limited to 'extmod/modure.c')
-rw-r--r--extmod/modure.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/extmod/modure.c b/extmod/modure.c
index f54b060c8f..f25c1a8d90 100644
--- a/extmod/modure.c
+++ b/extmod/modure.c
@@ -185,6 +185,9 @@ STATIC const mp_obj_type_t re_type = {
STATIC mp_obj_t mod_re_compile(uint n_args, const mp_obj_t *args) {
const char *re_str = mp_obj_str_get_str(args[0]);
int size = re1_5_sizecode(re_str);
+ if (size == -1) {
+ goto error;
+ }
mp_obj_re_t *o = m_new_obj_var(mp_obj_re_t, char, size);
o->base.type = &re_type;
int flags = 0;
@@ -193,6 +196,7 @@ STATIC mp_obj_t mod_re_compile(uint n_args, const mp_obj_t *args) {
}
int error = re1_5_compilecode(&o->re, re_str);
if (error != 0) {
+error:
nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, "Error in regex"));
}
if (flags & FLAG_DEBUG) {