diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2019-09-20 10:29:38 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2019-11-18 12:46:29 +0200 |
commit | bc157802b5ffe516f9bc67397edfae4f25e98990 (patch) | |
tree | aea486d02c9d7ed11ac4a7c23fddfdb2b59993d0 | |
parent | b5f4c1640f27a1c2c63e9ee3e6d267175da5cb80 (diff) | |
download | rpm-bc157802b5ffe516f9bc67397edfae4f25e98990.tar.gz |
Always check for rdToken() return codes in expression parsing
(cherry picked from commit 968c53cd3de01e16e8be3da800c8cd0d8e25fcbe)
-rw-r--r-- | rpmio/expression.c | 10 |
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); |