diff options
-rw-r--r-- | libavcodec/4xm.c | 6 | ||||
-rw-r--r-- | libavutil/mem.c | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/libavcodec/4xm.c b/libavcodec/4xm.c index 406ca728ad..e3d8486941 100644 --- a/libavcodec/4xm.c +++ b/libavcodec/4xm.c @@ -757,8 +757,10 @@ static int decode_i_frame(FourXContext *f, const uint8_t *buf, int length) } prestream = read_huffman_tables(f, prestream, buf + length - prestream); - if (!prestream) - return -1; + if (!prestream) { + av_log(f->avctx, AV_LOG_ERROR, "Error reading Huffman tables.\n"); + return AVERROR_INVALIDDATA; + } av_assert0(prestream <= buf + length); diff --git a/libavutil/mem.c b/libavutil/mem.c index 6d3efaabfa..a7fe60837b 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -323,7 +323,10 @@ static void fill32(uint8_t *dst, int len) void av_memcpy_backptr(uint8_t *dst, int back, int cnt) { const uint8_t *src = &dst[-back]; - if (back <= 1) { + if (!back) + return; + + if (back == 1) { memset(dst, *src, cnt); } else if (back == 2) { fill16(dst, cnt); |