lafv/wavdec: Fail bext parsing on incomplete reads
authorMatt Wolenetz <wolenetz@google.com>
Thu, 25 Jul 2019 22:54:49 +0000 (15:54 -0700)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 26 Jul 2019 06:38:09 +0000 (08:38 +0200)
commit052d41377a02f480f8e7135c0f7d418e9a405215
tree45c30777229f0b2812d07b507845d5e50dee86c2
parentd83a3117e2f0b17a7742ec16d8fb39cddc272375
lafv/wavdec: Fail bext parsing on incomplete reads

avio_read can successfully return even when less than the requested
amount of input was read. wavdec's bext parsing mistakenly assumed a
successful avio_read always read the full amount that was requested.
The result could be dictionary tags populated with partially
uninitialized values.

This change also fixes a broken assertion in wav_parse_bext_string that
was off-by-one, though no known current usage of that method hits that
broken case.

Chromium bug: 987270

Signed-off-by: Matt Wolenetz <wolenetz@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/wavdec.c