mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
media: rc: Validate carrier range in LIRC_SET_REC_CARRIER ioctl
Ensure that the low value of the carrier range is smaller than the high value. This fixes an underflow in ite_set_rx_carrier_range(). Signed-off-by: Sean Young <sean@mess.org> Acked-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
ef41a67979
commit
e252955466
|
|
@ -492,6 +492,8 @@ static long lirc_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
ret = -ENOTTY;
|
||||
else if (val <= 0)
|
||||
ret = -EINVAL;
|
||||
else if (fh->carrier_low && fh->carrier_low > val)
|
||||
ret = -EINVAL;
|
||||
else
|
||||
ret = dev->s_rx_carrier_range(dev, fh->carrier_low,
|
||||
val);
|
||||
|
|
|
|||
|
|
@ -74,11 +74,6 @@ static int loop_set_rx_carrier_range(struct rc_dev *dev, u32 min, u32 max)
|
|||
{
|
||||
struct loopback_dev *lodev = dev->priv;
|
||||
|
||||
if (min < 1 || min > max) {
|
||||
dev_dbg(&dev->dev, "invalid rx carrier range %u to %u\n", min, max);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
dev_dbg(&dev->dev, "setting rx carrier range %u to %u\n", min, max);
|
||||
lodev->rxcarriermin = min;
|
||||
lodev->rxcarriermax = max;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user