Commit 72e637fe authored by Dan Carpenter's avatar Dan Carpenter Committed by Mauro Carvalho Chehab

media: rc: validate that "rc_proto" is reasonable

Smatch complains that "rc_proto" comes from the user and it can result
in shift wrapping in ir_raw_encode_scancode()

    drivers/media/rc/rc-ir-raw.c:526 ir_raw_encode_scancode()
    error: undefined (user controlled) shift '1 << protocol'

This is true, but I reviewed the surrounding code and it appears
harmless. Anyway, let's verify that "rc_proto" is valid as a kernel
hardening measure.
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 7399139b
...@@ -263,7 +263,8 @@ static ssize_t lirc_transmit(struct file *file, const char __user *buf, ...@@ -263,7 +263,8 @@ static ssize_t lirc_transmit(struct file *file, const char __user *buf,
goto out_unlock; goto out_unlock;
} }
if (scan.flags || scan.keycode || scan.timestamp) { if (scan.flags || scan.keycode || scan.timestamp ||
scan.rc_proto > RC_PROTO_MAX) {
ret = -EINVAL; ret = -EINVAL;
goto out_unlock; goto out_unlock;
} }
......
...@@ -226,6 +226,7 @@ enum rc_proto { ...@@ -226,6 +226,7 @@ enum rc_proto {
RC_PROTO_RCMM24 = 25, RC_PROTO_RCMM24 = 25,
RC_PROTO_RCMM32 = 26, RC_PROTO_RCMM32 = 26,
RC_PROTO_XBOX_DVD = 27, RC_PROTO_XBOX_DVD = 27,
RC_PROTO_MAX = RC_PROTO_XBOX_DVD,
}; };
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment