Skip to content

Commit 29abf0b

Browse files
kumarsacintel-mediadev
authored andcommitted
[Encode] VP9 Encode Add boundary check for log2_tile_columns
User might pass picParam->log2_tile_columns as 0 for >4K width In this scenario Vp9WriteUncompressHeader may crash in while loop or huze loop due to possible col_data negative value. To avoid this added a boundary check and making picParam->log2_tile_columns same as min_log2_tile_cols. Signed-off-by: sachin kumar <[email protected]>
1 parent d4720e7 commit 29abf0b

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

media_softlet/linux/common/codec/ddi/enc/media_libvpx_vp9_next.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,18 @@ bool Vp9WriteUncompressHeader(encode::DDI_ENCODE_CONTEXT *ddiEncContext,
449449
min_log2_tile_cols = get_min_log2_tile_cols(sb_cols);
450450
max_log2_tile_cols = get_max_log2_tile_cols(sb_cols);
451451

452+
if (picParam->log2_tile_columns < min_log2_tile_cols)
453+
{
454+
// This is boundary checking for log2_tile_columns. We should not hit this
455+
// If user passes right log2_tile_columns.
456+
// Making log2_tile_columns as min_log2_tile_cols to avoid negative col_data.
457+
DDI_CODEC_ASSERTMESSAGE("log2_tile_columns (%d) < min_log2_tile_cols (%d), adjusting to minimum. \n",
458+
picParam->log2_tile_columns, min_log2_tile_cols);
459+
picParam->log2_tile_columns = min_log2_tile_cols;
460+
}
461+
452462
col_data = picParam->log2_tile_columns - min_log2_tile_cols;
463+
453464
while (col_data--)
454465
{
455466
vp9_wb_write_bit(wb, 1);

0 commit comments

Comments
 (0)