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