Handle palette underflows, fill remaining space with black (zero) data.

Patch by Sebastian Vater <cdgs basty googlemail com>.

Originally committed as revision 23111 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Sebastian Vater 2010-05-13 15:33:36 +00:00 committed by Ronald S. Bultje
parent 2f955ea41b
commit ebcf7c3227
1 changed files with 2 additions and 4 deletions

View File

@ -123,10 +123,8 @@ int ff_cmap_read_palette(AVCodecContext *avctx, uint32_t *pal)
}
count = 1 << avctx->bits_per_coded_sample;
if (avctx->extradata_size < count * 3) {
av_log(avctx, AV_LOG_ERROR, "palette data underflow\n");
return AVERROR_INVALIDDATA;
}
// If extradata is smaller than actually needed, fill the remaining with black.
count = FFMIN(avctx->extradata_size / 3, count);
for (i=0; i < count; i++) {
pal[i] = 0xFF000000 | AV_RB24( avctx->extradata + i*3 );
}