aboutsummaryrefslogtreecommitdiff
path: root/fs/nls/nls_cp737.c
diff options
context:
space:
mode:
authorBartosz Golaszewski2022-12-05 13:39:02 +0100
committerGreg Kroah-Hartman2022-12-31 13:32:42 +0100
commitac6ce3cd7a3e10a2e37b8970bab81b4d33d5cfc3 (patch)
tree3cf2d4bcb9cb99327e6da94a48a009d5e832c0c1 /fs/nls/nls_cp737.c
parent60ff9bd4ffc87bace581e235a6728f5ac8e5071f (diff)
gpiolib: cdev: fix NULL-pointer dereferences
[ Upstream commit 533aae7c94dbc2b14301cfd68ae7e0e90f0c8438 ] There are several places where we can crash the kernel by requesting lines, unbinding the GPIO device, then calling any of the system calls relevant to the GPIO character device's annonymous file descriptors: ioctl(), read(), poll(). While I observed it with the GPIO simulator, it will also happen for any of the GPIO devices that can be hot-unplugged - for instance any HID GPIO expander (e.g. CP2112). This affects both v1 and v2 uAPI. This fixes it partially by checking if gdev->chip is not NULL but it doesn't entirely remedy the situation as we still have a race condition in which another thread can remove the device after the check. Fixes: d7c51b47ac11 ("gpio: userspace ABI for reading/writing GPIO lines") Fixes: 3c0d9c635ae2 ("gpiolib: cdev: support GPIO_V2_GET_LINE_IOCTL and GPIO_V2_LINE_GET_VALUES_IOCTL") Fixes: aad955842d1c ("gpiolib: cdev: support GPIO_V2_GET_LINEINFO_IOCTL and GPIO_V2_GET_LINEINFO_WATCH_IOCTL") Fixes: a54756cb24ea ("gpiolib: cdev: support GPIO_V2_LINE_SET_CONFIG_IOCTL") Fixes: 7b8e00d98168 ("gpiolib: cdev: support GPIO_V2_LINE_SET_VALUES_IOCTL") Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'fs/nls/nls_cp737.c')
0 files changed, 0 insertions, 0 deletions