vp9: change type of tile_size from unsigned to int64_t
Otherwise the check 'tile_size < size' treats a negative size as
unsigned, causing the check to pass. This subsequently leads to
segmentation faults.
This was originally fixed as part of Libav commit 72ca83, so the
original author is one of the following developers:
Anton Khirnov <anton@khirnov.net>
Diego Biurrun <diego@biurrun.de>
Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö <martin@martin.st>
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit b18eac7ff2
)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:

committed by
Michael Niedermayer

parent
8c8406462b
commit
9da5ba1f57
@@ -3841,7 +3841,7 @@ static int vp9_decode_frame(AVCodecContext *ctx, void *frame,
|
|||||||
tile_row, s->tiling.log2_tile_rows, s->sb_rows);
|
tile_row, s->tiling.log2_tile_rows, s->sb_rows);
|
||||||
if (s->pass != 2) {
|
if (s->pass != 2) {
|
||||||
for (tile_col = 0; tile_col < s->tiling.tile_cols; tile_col++) {
|
for (tile_col = 0; tile_col < s->tiling.tile_cols; tile_col++) {
|
||||||
unsigned tile_size;
|
int64_t tile_size;
|
||||||
|
|
||||||
if (tile_col == s->tiling.tile_cols - 1 &&
|
if (tile_col == s->tiling.tile_cols - 1 &&
|
||||||
tile_row == s->tiling.tile_rows - 1) {
|
tile_row == s->tiling.tile_rows - 1) {
|
||||||
|
Reference in New Issue
Block a user