diff options
Diffstat (limited to 'common/env_attr.c')
-rw-r--r-- | common/env_attr.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/common/env_attr.c b/common/env_attr.c index 5bfe5e3a89..f965b4bbb6 100644 --- a/common/env_attr.c +++ b/common/env_attr.c @@ -132,6 +132,10 @@ static int regex_callback(const char *name, const char *attributes, void *priv) if (slre_match(&slre, cbp->searched_for, strlen(cbp->searched_for), caps)) { free(cbp->regex); + if (!attributes) { + retval = -EINVAL; + goto done; + } cbp->regex = malloc(strlen(regex) + 1); if (cbp->regex) { strcpy(cbp->regex, regex); @@ -153,7 +157,7 @@ static int regex_callback(const char *name, const char *attributes, void *priv) } } else { printf("Error compiling regex: %s\n", slre.err_str); - retval = EINVAL; + retval = -EINVAL; } done: return retval; |