summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2019-09-20 10:29:38 +0300
committerPanu Matilainen <pmatilai@redhat.com>2019-11-18 12:46:29 +0200
commitbc157802b5ffe516f9bc67397edfae4f25e98990 (patch)
treeaea486d02c9d7ed11ac4a7c23fddfdb2b59993d0
parentb5f4c1640f27a1c2c63e9ee3e6d267175da5cb80 (diff)
downloadrpm-bc157802b5ffe516f9bc67397edfae4f25e98990.tar.gz
Always check for rdToken() return codes in expression parsing
(cherry picked from commit 968c53cd3de01e16e8be3da800c8cd0d8e25fcbe)
-rw-r--r--rpmio/expression.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/rpmio/expression.c b/rpmio/expression.c
index ad0199df5..e70ebb6bd 100644
--- a/rpmio/expression.c
+++ b/rpmio/expression.c
@@ -714,7 +714,7 @@ int rpmExprBool(const char *expr)
{
struct _parseState state;
int result = -1;
- Value v;
+ Value v = NULL;
DEBUG(printf("parseExprBoolean(?, '%s')\n", expr));
@@ -722,7 +722,8 @@ int rpmExprBool(const char *expr)
state.p = state.str = xstrdup(expr);
state.nextToken = 0;
state.tokenValue = NULL;
- (void) rdToken(&state);
+ if (rdToken(&state))
+ goto exit;
/* Parse the expression. */
v = doLogical(&state);
@@ -758,7 +759,7 @@ char *rpmExprStr(const char *expr)
{
struct _parseState state;
char *result = NULL;
- Value v;
+ Value v = NULL;
DEBUG(printf("parseExprString(?, '%s')\n", expr));
@@ -766,7 +767,8 @@ char *rpmExprStr(const char *expr)
state.p = state.str = xstrdup(expr);
state.nextToken = 0;
state.tokenValue = NULL;
- (void) rdToken(&state);
+ if (rdToken(&state))
+ goto exit;
/* Parse the expression. */
v = doLogical(&state);