summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>2016-02-22 19:27:20 +0300
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2016-02-23 13:22:22 +0300
commit4c2f7f72b8993c73724790bf2ac33cb788d1ff06 (patch)
tree1fd87d5c23037ccd0b9fe935d6612d980c8f78a0
parentd079e36d94bc3535d04dba667b6d96d2030c199d (diff)
downloadlinux-4c2f7f72b8993c73724790bf2ac33cb788d1ff06.tar.xz
[media] ivtv: steal could be NULL
ivtv_flush_queues() calls ivtv_queue_move() with steal == NULL. However, part of the code assumes that steal could be not null, as pointed by smatch: drivers/media/pci/ivtv/ivtv-queue.c:145 ivtv_queue_move() error: we previously assumed 'steal' could be null (see line 138) This has the potential of causing an OOPS when the queue is flushed. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r--drivers/media/pci/ivtv/ivtv-queue.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/pci/ivtv/ivtv-queue.c b/drivers/media/pci/ivtv/ivtv-queue.c
index 7fde36e6d227..2128c2a8d7fd 100644
--- a/drivers/media/pci/ivtv/ivtv-queue.c
+++ b/drivers/media/pci/ivtv/ivtv-queue.c
@@ -141,7 +141,7 @@ int ivtv_queue_move(struct ivtv_stream *s, struct ivtv_queue *from, struct ivtv_
spin_unlock_irqrestore(&s->qlock, flags);
return -ENOMEM;
}
- while (bytes_available < needed_bytes) {
+ while (steal && bytes_available < needed_bytes) {
struct ivtv_buffer *buf = list_entry(steal->list.prev, struct ivtv_buffer, list);
u16 dma_xfer_cnt = buf->dma_xfer_cnt;