From: Ran Benita Date: Tue, 12 Nov 2019 20:31:46 +0000 (+0200) Subject: compat: reject interpret modifier predicate with more than one value X-Git-Tag: xkbcommon-0.10.0~52 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3d43f4806d30461bba671e514e9b8a52d732ee20;p=platform%2Fupstream%2Flibxkbcommon.git compat: reject interpret modifier predicate with more than one value Given interpret ISO_Level3_Shift+AnyOf(all,extraneous) { ... }; Previously, extraneous (and further) was ignored. Now it's rejected. Signed-off-by: Ran Benita --- diff --git a/src/xkbcomp/compat.c b/src/xkbcomp/compat.c index bd587c8..cee962e 100644 --- a/src/xkbcomp/compat.c +++ b/src/xkbcomp/compat.c @@ -265,7 +265,7 @@ ResolveStateAndPredicate(ExprDef *expr, enum xkb_match_operation *pred_rtrn, if (expr->expr.op == EXPR_ACTION_DECL) { const char *pred_txt = xkb_atom_text(info->ctx, expr->action.name); if (!LookupString(symInterpretMatchMaskNames, pred_txt, pred_rtrn) || - !expr->action.args) { + !expr->action.args || expr->action.args->common.next) { log_err(info->ctx, "Illegal modifier predicate \"%s\"; Ignored\n", pred_txt); return false;