[FFmpeg-cvslog] dds: limit 4 bpp handling to AV_PIX_FMT_PAL8
Andreas Cadhalpun
git at videolan.org
Fri Nov 18 01:08:42 EET 2016
ffmpeg | branch: release/3.2 | Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com> | Tue Nov 15 22:11:05 2016 +0100| [598016b85f29d793922c3289d50cab2393582443] | committer: Andreas Cadhalpun
dds: limit 4 bpp handling to AV_PIX_FMT_PAL8
This fixes NULL pointer dereferencing for formats, where frame->data[1]
is not allocated.
The problem was introduced in commit
257fbc3af4cba08ac471dab68924182160bde6fd.
Reviewed-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
(cherry picked from commit 90ebf3c428352eb1d4116bf97b470ceca295d7d6)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=598016b85f29d793922c3289d50cab2393582443
---
libavcodec/dds.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/dds.c b/libavcodec/dds.c
index 43319a8..fa0f34d 100644
--- a/libavcodec/dds.c
+++ b/libavcodec/dds.c
@@ -680,7 +680,7 @@ static int dds_decode(AVCodecContext *avctx, void *data,
/* Use the decompress function on the texture, one block per thread. */
ctx->tex_data = gbc->buffer;
avctx->execute2(avctx, decompress_texture_thread, frame, NULL, ctx->slice_count);
- } else if (!ctx->paletted && ctx->bpp == 4) {
+ } else if (!ctx->paletted && ctx->bpp == 4 && avctx->pix_fmt == AV_PIX_FMT_PAL8) {
uint8_t *dst = frame->data[0];
int x, y, i;
More information about the ffmpeg-cvslog
mailing list