All of lore.kernel.org
 help / color / mirror / Atom feed
* Problematic code in media/v4l2-core/v4l2-mem2mem.c
@ 2019-02-21 18:11 Shaobo
  2019-02-21 21:50 ` Laurent Pinchart
  0 siblings, 1 reply; 3+ messages in thread
From: Shaobo @ 2019-02-21 18:11 UTC (permalink / raw)
  To: linux-media, pawel, m.szyprowski, laurent.pinchart

Hello everyone,

I think I brought up this issue before but didn't resolve it completely. 
Now I'd like to double check this and if we can agree on it, I'd also 
like to submit a patch to fix it. The problem is that function 
`get_queue_ctx` can never return a NULL pointer unless pointer overflow 
occurs, which is very unlikely. To be more specific,

```
static struct v4l2_m2m_queue_ctx *get_queue_ctx(struct v4l2_m2m_ctx 
*m2m_ctx,
						enum v4l2_buf_type type)
{
	if (V4L2_TYPE_IS_OUTPUT(type))
		return &m2m_ctx->out_q_ctx;
	else
		return &m2m_ctx->cap_q_ctx;
}
```

The address returned by this function is either `(char*)m2m_ctx+968` or 
`(char*)m2m_ctx+16`, so for it to be NULL, `m2m_ctx` must be a large 
unsigned value. Yet the return value of this function is NULL-checked, 
for example in v4l2_m2m_get_vq.

Please let me know if it makes sense.

Best,
Shaobo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-02-22  0:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-21 18:11 Problematic code in media/v4l2-core/v4l2-mem2mem.c Shaobo
2019-02-21 21:50 ` Laurent Pinchart
2019-02-22  0:27   ` Shaobo He

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.