diff options
author | wm4 <nfxjfg@googlemail.com> | 2015-01-13 14:47:47 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-02-13 20:48:09 +0100 |
commit | d705125b949bc49889f52ea8ea4a036a7d8d2e2b (patch) | |
tree | cfc46d331a634609fdedd6b4635f5fa1fe3acc8e | |
parent | 1a263f0dd96a7acae8a5d9290cd158b03dfaca82 (diff) | |
download | ffmpeg-d705125b949bc49889f52ea8ea4a036a7d8d2e2b.tar.gz |
qpeg: avoid pointless invalid memcpy()
If refdata was NULL, the memcpy() ended up copying the same memory
block onto itself, which is not only pointless, but also undefined
behavior.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 921706691a87c3ea5f5b92afd9b423e5f8c6e9d9)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/qpeg.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libavcodec/qpeg.c b/libavcodec/qpeg.c index d61bceafd7..71f322b828 100644 --- a/libavcodec/qpeg.c +++ b/libavcodec/qpeg.c @@ -120,12 +120,13 @@ static void av_noinline qpeg_decode_inter(QpegContext *qctx, uint8_t *dst, int filled = 0; int orig_height; - if(!refdata) - refdata= dst; - - /* copy prev frame */ - for(i = 0; i < height; i++) - memcpy(dst + (i * stride), refdata + (i * stride), width); + if (refdata) { + /* copy prev frame */ + for (i = 0; i < height; i++) + memcpy(dst + (i * stride), refdata + (i * stride), width); + } else { + refdata = dst; + } orig_height = height; height--; |