On Thu, Jan 25, 2024 at 09:06:29AM +0100, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > If the kernel GPIO driver (erroneously) returns a positive value from one > of its callbacks, it may end up being propagated to user space as > a positive value returned by the call to ioctl(). Let's treat all > non-zero values as errors as GPIO uAPI ioctl()s are not expected to ever > return positive values. > > To that end let's create a wrapper around the libc's ioctl() that checks > the return value and sets errno to EBADE (Invalid exchange) if it's > greater than 0. > > This should be addressed in the kernel but will remain a problem on older > or unpatched versions so we need to sanitize it in user-space too. > > Reported-by: José Guilherme de Castro Rodrigues <joseguilhermebh@xxxxxxxxxxx> > Fixes: b7ba732e6a93 ("treewide: libgpiod v2 implementation") > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> Reviewed-by: Kent Gibson <warthog618@xxxxxxxxx>