diff options
author | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2016-02-22 19:27:20 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2016-02-23 13:22:22 +0300 |
commit | 4c2f7f72b8993c73724790bf2ac33cb788d1ff06 (patch) | |
tree | 1fd87d5c23037ccd0b9fe935d6612d980c8f78a0 | |
parent | d079e36d94bc3535d04dba667b6d96d2030c199d (diff) | |
download | linux-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.c | 2 |
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; |