Em Wed, Apr 07, 2021 at 08:39:55AM -0700, Ian Rogers escreveu: > SPE extended headers are >1 byte so ensure the buffer contains at > least this before reading. This issue was detected by fuzzing.
Thanks, applied. - Arnaldo > Signed-off-by: Ian Rogers <irog...@google.com> > --- > tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > index f3ac9d40cebf..2e5eff4f8f03 100644 > --- a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > +++ b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c > @@ -210,8 +210,10 @@ static int arm_spe_do_get_packet(const unsigned char > *buf, size_t len, > > if ((hdr & SPE_HEADER0_MASK2) == SPE_HEADER0_EXTENDED) { > /* 16-bit extended format header */ > - ext_hdr = 1; > + if (len == 1) > + return ARM_SPE_BAD_PACKET; > > + ext_hdr = 1; > hdr = buf[1]; > if (hdr == SPE_HEADER1_ALIGNMENT) > return arm_spe_get_alignment(buf, len, packet); > -- > 2.31.0.208.g409f899ff0-goog > -- - Arnaldo