[FFmpeg-devel] [PATCH] qpeg: avoid pointless invalid memcpy()

wm4 nfxjfg at googlemail.com
Tue Jan 13 14:47:47 CET 2015


If refdata was NULL, the memcpy() ended up copying the same memory
block onto itself, which is not only pointless, but also undefined
behavior.
---
Someone spotted the issue in valgrind output.
---
 libavcodec/qpeg.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/libavcodec/qpeg.c b/libavcodec/qpeg.c
index d61bcea..71f322b 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--;
-- 
2.1.4



More information about the ffmpeg-devel mailing list