summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/matroska.h1
-rw-r--r--libavformat/matroskadec.c1
-rw-r--r--libavformat/smacker.c2
3 files changed, 3 insertions, 1 deletions
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);