rapidio: Potential oops in riocm_ch_listen()
Subsystems (2)
PATCH 1/1 rapidio: Potential oops in riocm_ch_listen()
If riocm_get_channel() fails, then we should just return -EINVAL. Calling riocm_put_channel() will trigger a NULL dereference and generally we should call put() if the get() didn't succeed.
Fixes b6e8d4aa1110 ("rapidio: add RapidIO channelized messaging driver")
Signed-off-by Dan Carpenter <[email protected]>
--- drivers/rapidio/rio_cm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/rapidio/rio_cm.c +3 -1
@@ -1215,7 +1215,9 @@ static int riocm_ch_listen(u16 ch_id)riocm_debug (CHOP ,"(ch_%d)" , ch_id); ch =riocm_get_channel (ch_id); -if (!ch || !riocm_cmp_exch (ch,RIO_CM_CHAN_BOUND ,RIO_CM_LISTEN )) +if (!ch) +return -EINVAL ; +if (!riocm_cmp_exch (ch,RIO_CM_CHAN_BOUND ,RIO_CM_LISTEN )) ret = -EINVAL ;riocm_put_channel (ch);return ret;
Signature · 1 line
2.17.1