OSDN Git Service

avformat/mov: check avio_read() return in mov_read_dref()
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 27 Dec 2013 22:35:46 +0000 (23:35 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 27 Dec 2013 22:37:17 +0000 (23:37 +0100)
Fixes: msan_uninit-mem_7f4960453a02_7264_mr_cork_jpeg.mov
Fixes use of uninitialized memory
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mov.c

index 940393d..be602ee 100644 (file)
@@ -537,7 +537,8 @@ static int mov_read_dref(MOVContext *c, AVIOContext *pb, MOVAtom atom)
                     dref->dir = av_malloc(len+1);
                     if (!dref->dir)
                         return AVERROR(ENOMEM);
-                    avio_read(pb, dref->dir, len);
+                    if (avio_read(pb, dref->dir, len) != len)
+                        return AVERROR_INVALIDDATA;
                     dref->dir[len] = 0;
                     for (j = 0; j < len; j++)
                         if (dref->dir[j] == ':')