Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36a63ee3 authored by Sakari Ailus's avatar Sakari Ailus Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (5603): V4L: Prevent queueing queued buffers.



videobuf_qbuf queues buffers to q->stream but does not properly check
the state of the buffer before queueing. It was possible to queue
buffers that already were in the queue.
Only buffers that are in states STATE_NEEDS_INIT and STATE_IDLE can be
queued.

Signed-off-by: default avatarSakari Ailus <sakari.ailus@nokia.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 5ad5e484
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -702,9 +702,7 @@ videobuf_qbuf(struct videobuf_queue *q,
		dprintk(1,"qbuf: memory type is wrong.\n");
		goto done;
	}
	if (buf->state == STATE_QUEUED ||
	    buf->state == STATE_PREPARED ||
	    buf->state == STATE_ACTIVE) {
	if (buf->state != STATE_NEEDS_INIT && buf->state != STATE_IDLE) {
		dprintk(1,"qbuf: buffer is already queued or active.\n");
		goto done;
	}