diff options
author | Ran Benita <ran@unusedvar.com> | 2019-11-12 22:31:46 +0200 |
---|---|---|
committer | Ran Benita <ran@unusedvar.com> | 2019-11-12 22:31:46 +0200 |
commit | 3d43f4806d30461bba671e514e9b8a52d732ee20 (patch) | |
tree | 33d800a3679c2dfb27ad473ab757ccad7fe3386d /src | |
parent | 7d44c7a9f96428455219532c688dc0c7a69b4f79 (diff) | |
download | xorg-lib-libxkbcommon-3d43f4806d30461bba671e514e9b8a52d732ee20.tar.gz |
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 <ran@unusedvar.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/xkbcomp/compat.c | 2 |
1 files changed, 1 insertions, 1 deletions
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; |