int escaped_r0 = 0;
if (unlikely(p - estack_bx(stack, top)->u.s.str > estack_bx(stack, top)->u.s.seq_len || *p == '\0')) {
- if (q - estack_ax(stack, top)->u.s.str > estack_ax(stack, top)->u.s.seq_len || *q == '\0')
+ if (q - estack_ax(stack, top)->u.s.str > estack_ax(stack, top)->u.s.seq_len || *q == '\0') {
diff = 0;
- else
- diff = -1;
+ } else {
+ ret = parse_char(&q);
+ if (ret == -1)
+ diff = 0;
+ else
+ diff = -1;
+ }
break;
}
if (unlikely(q - estack_ax(stack, top)->u.s.str > estack_ax(stack, top)->u.s.seq_len || *q == '\0')) {
- if (p - estack_bx(stack, top)->u.s.str > estack_bx(stack, top)->u.s.seq_len || *p == '\0')
+ if (p - estack_bx(stack, top)->u.s.str > estack_bx(stack, top)->u.s.seq_len || *p == '\0') {
diff = 0;
- else
- diff = 1;
+ } else {
+ ret = parse_char(&p);
+ if (ret == -1)
+ diff = 0;
+ else
+ diff = 1;
+ }
break;
}
if (estack_bx(stack, top)->u.s.literal) {
struct bytecode_runtime *bytecode = filter_data;
void *pc, *next_pc, *start_pc;
int ret = -EINVAL;
- int retval = 0;
+ uint64_t retval = 0;
struct estack _stack;
struct estack *stack = &_stack;
register int64_t ax = 0, bx = 0;