aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-01-13 14:47:47 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-02-13 20:48:09 +0100
commitd705125b949bc49889f52ea8ea4a036a7d8d2e2b (patch)
treecfc46d331a634609fdedd6b4635f5fa1fe3acc8e
parent1a263f0dd96a7acae8a5d9290cd158b03dfaca82 (diff)
downloadffmpeg-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.c13
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--;