diff --git a/libavformat/matroska.h b/libavformat/matroska.h index 8a7e10b64d..af662bea4d 100644 --- a/libavformat/matroska.h +++ b/libavformat/matroska.h @@ -195,6 +195,7 @@ #define MATROSKA_ID_BLOCK 0xA1 #define MATROSKA_ID_BLOCKDURATION 0x9B #define MATROSKA_ID_BLOCKREFERENCE 0xFB +#define MATROSKA_ID_CODECSTATE 0xA4 /* IDs in the attachments master */ #define MATROSKA_ID_ATTACHEDFILE 0x61A7 diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 9aca99a1a3..b82f289e9f 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -564,6 +564,7 @@ static EbmlSyntax matroska_blockgroup[] = { { MATROSKA_ID_SIMPLEBLOCK, EBML_BIN, 0, offsetof(MatroskaBlock,bin) }, { MATROSKA_ID_BLOCKDURATION, EBML_UINT, 0, offsetof(MatroskaBlock,duration) }, { MATROSKA_ID_BLOCKREFERENCE, EBML_UINT, 0, offsetof(MatroskaBlock,reference) }, + { MATROSKA_ID_CODECSTATE, EBML_NONE }, { 1, EBML_UINT, 0, offsetof(MatroskaBlock,non_simple), {.u=1} }, { 0 } }; diff --git a/libavformat/smacker.c b/libavformat/smacker.c index 84481e22a6..7f270b48b1 100644 --- a/libavformat/smacker.c +++ b/libavformat/smacker.c @@ -276,7 +276,7 @@ static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt) } else if(t & 0x40){ /* copy with offset */ off = avio_r8(s->pb); j = (t & 0x3F) + 1; - if (off + j - 1 > 0xff) { + if (off + j > 0x100) { av_log(s, AV_LOG_ERROR, "Invalid palette update, offset=%d length=%d extends beyond palette size\n", off, j);