summaryrefslogtreecommitdiffstats
path: root/drivers/net/usb
diff options
context:
space:
mode:
authorIan Abbott <abbotti@mev.co.uk>2020-07-17 16:52:57 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-07-20 10:19:02 +0200
commitfc846e9db67c7e808d77bf9e2ef3d49e3820ce5d (patch)
tree6ff4f7d67ddb90ff84b29652b85d4834f318d66f /drivers/net/usb
parentstaging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift (diff)
downloadlinux-fc846e9db67c7e808d77bf9e2ef3d49e3820ce5d.tar.xz
linux-fc846e9db67c7e808d77bf9e2ef3d49e3820ce5d.zip
staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
The `INSN_CONFIG` comedi instruction with sub-instruction code `INSN_CONFIG_DIGITAL_TRIG` includes a base channel in `data[3]`. This is used as a right shift amount for other bitmask values without being checked. Shift amounts greater than or equal to 32 will result in undefined behavior. Add code to deal with this, adjusting the checks for invalid channels so that enabled channel bits that would have been lost by shifting are also checked for validity. Only channels 0 to 15 are valid. Fixes: a8c66b684efaf ("staging: comedi: addi_apci_1500: rewrite the subdevice support functions") Cc: <stable@vger.kernel.org> #4.0+: ef75e14a6c93: staging: comedi: verify array index is correct before using it Cc: <stable@vger.kernel.org> #4.0+ Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Link: https://lore.kernel.org/r/20200717145257.112660-5-abbotti@mev.co.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net/usb')
0 files changed, 0 insertions, 0 deletions