From 69f69b943d9f4777192b6cd9632ab41a363c62ae Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Mon, 26 Jun 2017 17:21:45 +0100 Subject: [PATCH 04/10] xkbcomp: Don't falsely promise from ExprResolveLhs Every user of ExprReturnLhs goes on to unconditionally dereference the field return, which can be NULL if xkb_intern_atom fails. Return false if this is the case, so we fail safely. testcase: splice geometry data into interp Signed-off-by: Daniel Stone (cherry picked from commit 38e1766bc6e20108948aec8a0b222a4bad0254e9) --- src/xkbcomp/expr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xkbcomp/expr.c b/src/xkbcomp/expr.c index d5dd62f..07d67e9 100644 --- a/src/xkbcomp/expr.c +++ b/src/xkbcomp/expr.c @@ -42,7 +42,7 @@ ExprResolveLhs(struct xkb_context *ctx, const ExprDef *expr, *elem_rtrn = NULL; *field_rtrn = xkb_atom_text(ctx, expr->ident.ident); *index_rtrn = NULL; - return true; + return (*field_rtrn != NULL); case EXPR_FIELD_REF: *elem_rtrn = xkb_atom_text(ctx, expr->field_ref.element); *field_rtrn = xkb_atom_text(ctx, expr->field_ref.field); -- 2.20.1