File CVE-2020-0034.patch of Package libvpx.30875
--- a/vp8/decoder/decodframe.c.orig 2021-12-15 09:36:40.224483998 +0100
+++ b/vp8/decoder/decodframe.c 2021-12-15 09:38:19.976601085 +0100
@@ -1049,7 +1049,7 @@
/* When error concealment is enabled we should only check the sync
* code if we have enough bits available
*/
- if (!pbi->ec_active || data + 3 < data_end)
+ if (data + 3 < data_end)
{
if (clear[0] != 0x9d || clear[1] != 0x01 || clear[2] != 0x2a)
vpx_internal_error(&pc->error, VPX_CODEC_UNSUP_BITSTREAM,
@@ -1060,14 +1060,20 @@
* if we have enough data. Otherwise we will end up with the wrong
* size.
*/
- if (!pbi->ec_active || data + 6 < data_end)
+ if (data + 6 < data_end)
{
pc->Width = (clear[3] | (clear[4] << 8)) & 0x3fff;
pc->horiz_scale = clear[4] >> 6;
pc->Height = (clear[5] | (clear[6] << 8)) & 0x3fff;
pc->vert_scale = clear[6] >> 6;
+ data += 7;
+ } else if (!pbi->ec_active) {
+ vpx_internal_error(&pc->error, VPX_CODEC_CORRUPT_FRAME,
+ "Truncated key frame header");
+ } else {
+ /* Error concealment is active, clear the frame. */
+ data = data_end;
}
- data += 7;
clear += 7;
}
else