This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Uninitialized variable read in cgen disassembler
- From: Alan Modra <amodra at gmail dot com>
- To: cgen at sourceware dot org, binutils at sourceware dot org
- Date: Tue, 11 Feb 2020 12:13:21 +1030
- Subject: Re: Uninitialized variable read in cgen disassembler
- References: <20200207140121.GJ5669@bubble.grove.modra.org>
On Sat, Feb 08, 2020 at 12:31:21AM +1030, Alan Modra wrote:
> There's a return path in extract_normal that doesn't set *valuep,
> when fill_cache fails.
Let's fix that then.
* cgen-ibld.in (extract_normal): Set *valuep on all return paths.
* bpf-ibld.c, * epiphany-ibld.c, * fr30-ibld.c, * frv-ibld.c,
* ip2k-ibld.c, * iq2000-ibld.c, * lm32-ibld.c, * m32c-ibld.c,
* m32r-ibld.c, * mep-ibld.c, * mt-ibld.c, * or1k-ibld.c,
* xc16x-ibld.c, * xstormy16-ibld.c: Regenerate.
diff --git a/opcodes/cgen-ibld.in b/opcodes/cgen-ibld.in
index 9d856cda83..6a9b97fcb5 100644
--- a/opcodes/cgen-ibld.in
+++ b/opcodes/cgen-ibld.in
@@ -479,7 +479,10 @@ extract_normal (CGEN_CPU_DESC cd,
abort ();
if (fill_cache (cd, ex_info, word_offset / 8, word_length / 8, pc) == 0)
- return 0;
+ {
+ *valuep = 0;
+ return 0;
+ }
value = extract_1 (cd, ex_info, start, length, word_length, bufp, pc);
}
--
Alan Modra
Australia Development Lab, IBM