[libav-commits] v4l2: do not assert on a value received from outside of Libav

Anton Khirnov git at libav.org
Sun Jan 13 16:53:48 CET 2013


Module: libav
Branch: master
Commit: 49dc82eef776634ac2da41fca9f105df25129ad8

Author:    Anton Khirnov <anton at khirnov.net>
Committer: Anton Khirnov <anton at khirnov.net>
Date:      Tue Jan  8 08:04:59 2013 +0100

v4l2: do not assert on a value received from outside of Libav

---

 libavdevice/v4l2.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index eb5de15..d57bd75 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -460,7 +460,12 @@ static int mmap_read_frame(AVFormatContext *ctx, AVPacket *pkt)
 
         return AVERROR(errno);
     }
-    assert (buf.index < s->buffers);
+
+    if (buf.index >= s->buffers) {
+        av_log(ctx, AV_LOG_ERROR, "Invalid buffer index received.\n");
+        return AVERROR(EINVAL);
+    }
+
     if (s->frame_size > 0 && buf.bytesused != s->frame_size) {
         av_log(ctx, AV_LOG_ERROR,
                "The v4l2 frame is %d bytes, but %d bytes are expected\n",



More information about the libav-commits mailing list