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

Commit a6bd62be authored by Andrzej Pietrasiewicz's avatar Andrzej Pietrasiewicz Committed by Mauro Carvalho Chehab
Browse files

[media] media: mem2mem: eliminate possible NULL pointer dereference



This patch removes the possible NULL pointer dereference in mem2mem
code.

Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
CC: Pawel Osciak <pawel@osciak.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 1d0c86ca
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -97,11 +97,12 @@ void *v4l2_m2m_next_buf(struct v4l2_m2m_queue_ctx *q_ctx)

	spin_lock_irqsave(&q_ctx->rdy_spinlock, flags);

	if (list_empty(&q_ctx->rdy_queue))
		goto end;
	if (list_empty(&q_ctx->rdy_queue)) {
		spin_unlock_irqrestore(&q_ctx->rdy_spinlock, flags);
		return NULL;
	}

	b = list_entry(q_ctx->rdy_queue.next, struct v4l2_m2m_buffer, list);
end:
	spin_unlock_irqrestore(&q_ctx->rdy_spinlock, flags);
	return &b->vb;
}
@@ -117,12 +118,13 @@ void *v4l2_m2m_buf_remove(struct v4l2_m2m_queue_ctx *q_ctx)
	unsigned long flags;

	spin_lock_irqsave(&q_ctx->rdy_spinlock, flags);
	if (!list_empty(&q_ctx->rdy_queue)) {
		b = list_entry(q_ctx->rdy_queue.next, struct v4l2_m2m_buffer,
				list);
	if (list_empty(&q_ctx->rdy_queue)) {
		spin_unlock_irqrestore(&q_ctx->rdy_spinlock, flags);
		return NULL;
	}
	b = list_entry(q_ctx->rdy_queue.next, struct v4l2_m2m_buffer, list);
	list_del(&b->list);
	q_ctx->num_rdy--;
	}
	spin_unlock_irqrestore(&q_ctx->rdy_spinlock, flags);

	return &b->vb;