gpiolib: avoid uninitialized data in gpio kfifo
authorArnd Bergmann <arnd@arndb.de>
Thu, 16 Jun 2016 09:02:41 +0000 (11:02 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 16 Jun 2016 10:00:25 +0000 (12:00 +0200)
commitbc0207a5461169eba13e9421bd7632399b72e3ab
tree53681e9334bb0a60fae868cef60b2be714d01336
parent97f69747d8b11c76df321894344beeae6bafc301
gpiolib: avoid uninitialized data in gpio kfifo

gcc reports a theoretical case for returning uninitialized data in
the kfifo when a GPIO interrupt happens and neither
GPIOEVENT_REQUEST_RISING_EDGE nor GPIOEVENT_REQUEST_FALLING_EDGE
are set:

drivers/gpio/gpiolib.c: In function 'lineevent_irq_thread':
drivers/gpio/gpiolib.c:683:87: error: 'ge.id' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This case should not happen, but to be on the safe side, let's
return from the irq handler without adding data to the FIFO
to ensure we can never leak stack data to user space.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 61f922db7221 ("gpio: userspace ABI for reading GPIO line events")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c