diff --git a/src/acl.c b/src/acl.c index 0ded6bf82..0634d5d74 100644 --- a/src/acl.c +++ b/src/acl.c @@ -668,11 +668,8 @@ struct acl_expr *parse_acl_expr(const char **args) end = strchr(arg, ')'); if (!end) goto out_free_expr; - arg2 = (char *)calloc(1, end - arg + 1); - if (!arg2) + arg2 = my_strndup(arg, end - arg); goto out_free_expr; - memcpy(arg2, arg, end - arg); - arg2[end-arg] = '\0'; expr->arg_len = end - arg; expr->arg.str = arg2; } diff --git a/src/pattern.c b/src/pattern.c index 5afd068e9..63bae2b8c 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -397,9 +397,7 @@ struct pattern_expr *pattern_parse_expr(char **str, int *idx) if (end != endw) { expr->arg_len = end - endw - 2; - expr->arg = malloc(expr->arg_len + 1); - expr->arg = memcpy(expr->arg, endw + 1, expr->arg_len); - expr->arg[expr->arg_len] = '\0'; + expr->arg = my_strndup(endw + 1, expr->arg_len); } for (*idx += 1; *(str[*idx]); (*idx)++) {