|
@@ -1592,7 +1592,7 @@ static int get_op_prio(char *op)
|
|
|
case '?':
|
|
|
return 16;
|
|
|
default:
|
|
|
- die("unknown op '%c'", op[0]);
|
|
|
+ do_warning("unknown op '%c'", op[0]);
|
|
|
return -1;
|
|
|
}
|
|
|
} else {
|
|
@@ -1613,22 +1613,22 @@ static int get_op_prio(char *op)
|
|
|
} else if (strcmp(op, "||") == 0) {
|
|
|
return 15;
|
|
|
} else {
|
|
|
- die("unknown op '%s'", op);
|
|
|
+ do_warning("unknown op '%s'", op);
|
|
|
return -1;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void set_op_prio(struct print_arg *arg)
|
|
|
+static int set_op_prio(struct print_arg *arg)
|
|
|
{
|
|
|
|
|
|
/* single ops are the greatest */
|
|
|
- if (!arg->op.left || arg->op.left->type == PRINT_NULL) {
|
|
|
+ if (!arg->op.left || arg->op.left->type == PRINT_NULL)
|
|
|
arg->op.prio = 0;
|
|
|
- return;
|
|
|
- }
|
|
|
+ else
|
|
|
+ arg->op.prio = get_op_prio(arg->op.op);
|
|
|
|
|
|
- arg->op.prio = get_op_prio(arg->op.op);
|
|
|
+ return arg->op.prio;
|
|
|
}
|
|
|
|
|
|
/* Note, *tok does not get freed, but will most likely be saved */
|
|
@@ -1710,7 +1710,10 @@ process_op(struct event_format *event, struct print_arg *arg, char **tok)
|
|
|
arg->op.op = token;
|
|
|
arg->op.left = left;
|
|
|
|
|
|
- set_op_prio(arg);
|
|
|
+ if (set_op_prio(arg) == -1) {
|
|
|
+ event->flags |= EVENT_FL_FAILED;
|
|
|
+ goto out_free;
|
|
|
+ }
|
|
|
|
|
|
type = read_token_item(&token);
|
|
|
*tok = token;
|