diff options
author | Jacob Garber <jgarber1@ualberta.ca> | 2019-05-21 14:42:24 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-05-23 09:02:18 +0000 |
commit | 298afb3140fa8f092b356ec89d8be2f5a36b530f (patch) | |
tree | 6a8190e3f9d1f933bdd4abe0f45728826bffe325 | |
parent | 9742ae1d11dab3357835fab7d7e3577dde4e0480 (diff) |
util/romcc: Add extra null pointer check
It is possible that 'lnode->val' is set to 0 on a previous iteration of
the loop, so check that it is non-null here before dereferencing it.
Change-Id: I9827dd5623eaf11240df605a8b50ff9e27a5fce0
Signed-off-by: Jacob Garber <jgarber1@ualberta.ca>
Found-by: Coverity CID 1129149
Reviewed-on: https://review.coreboot.org/c/coreboot/+/32917
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
-rw-r--r-- | util/romcc/romcc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c index d60a9a7f83..2a158e5fe0 100644 --- a/util/romcc/romcc.c +++ b/util/romcc/romcc.c @@ -20944,7 +20944,8 @@ static void scc_visit_phi(struct compile_state *state, struct scc_state *scc, } } /* meet(const, const) = const or lattice low */ - else if (!constants_equal(state, lnode->val, tmp->val)) { + else if (lnode->val != 0 && + !constants_equal(state, lnode->val, tmp->val)) { lnode->val = 0; } |