[FFmpeg-devel,1/2] avcodec/dpx: check version of format header too

Submitted by Paul B Mahol on Dec. 6, 2018, 10:56 a.m.

Details

Message ID 20181206105640.12774-1-onemda@gmail.com
State Accepted
Commit 0f8383005c97766e94440c20f63564d66730e0e6
Headers show

Commit Message

Paul B Mahol Dec. 6, 2018, 10:56 a.m.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
---
 libavcodec/dpx.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Patch hide | download patch | download mbox

diff --git a/libavcodec/dpx.c b/libavcodec/dpx.c
index 538a1b9943..0297287938 100644
--- a/libavcodec/dpx.c
+++ b/libavcodec/dpx.c
@@ -106,6 +106,7 @@  static int decode_frame(AVCodecContext *avctx,
     int buf_size       = avpkt->size;
     AVFrame *const p = data;
     uint8_t *ptr[AV_NUM_DATA_POINTERS];
+    uint32_t header_version, version = 0;
 
     unsigned int offset;
     int magic_num, endian;
@@ -141,6 +142,15 @@  static int decode_frame(AVCodecContext *avctx,
         return AVERROR_INVALIDDATA;
     }
 
+    header_version = read32(&buf, 0);
+    if (header_version == MKTAG('V','1','.','0'))
+        version = 1;
+    if (header_version == MKTAG('V','2','.','0'))
+        version = 2;
+    if (!version)
+        av_log(avctx, AV_LOG_WARNING, "Unknown header format version %s.\n",
+               av_fourcc2str(header_version));
+
     // Check encryption
     buf = avpkt->data + 660;
     ret = read32(&buf, endian);