Skip to content

Commit bb4909d

Browse files
committed
Fail expression lookup on invalid atoms
If we fail atom lookup, then we should not claim that we successfully looked up the expression. Signed-off-by: Daniel Stone <daniels@collabora.com>
1 parent 5440aaa commit bb4909d

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

Diff for: src/xkbcomp/expr.c

+5-1
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,15 @@ ExprResolveLhs(struct xkb_context *ctx, const ExprDef *expr,
4747
*elem_rtrn = xkb_atom_text(ctx, expr->field_ref.element);
4848
*field_rtrn = xkb_atom_text(ctx, expr->field_ref.field);
4949
*index_rtrn = NULL;
50-
return true;
50+
return (*elem_rtrn != NULL && *field_rtrn != NULL);
5151
case EXPR_ARRAY_REF:
5252
*elem_rtrn = xkb_atom_text(ctx, expr->array_ref.element);
5353
*field_rtrn = xkb_atom_text(ctx, expr->array_ref.field);
5454
*index_rtrn = expr->array_ref.entry;
55+
if (expr->array_ref.element != XKB_ATOM_NONE && *elem_rtrn == NULL)
56+
return false;
57+
if (*field_rtrn == NULL)
58+
return false;
5559
return true;
5660
default:
5761
break;

0 commit comments

Comments
 (0)