]> git.baikalelectronics.ru Git - kernel.git/commit
Input: uinput - return -EINVAL when read buffer size is too small
authorDavid Herrmann <dh.herrmann@googlemail.com>
Mon, 30 Jul 2012 05:48:31 +0000 (22:48 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 22 Aug 2012 05:29:53 +0000 (22:29 -0700)
commitd8187b775c16fe3aa71e7200f314a41d60c46a7b
tree2be8d3a335f0d2a0b28d099bf41ffbba836246d5
parentbbee352c7a4702728603b9c56de23f40a0ab916e
Input: uinput - return -EINVAL when read buffer size is too small

Let's check whether the user-supplied buffer is actually big enough and
return -EINVAL if it is not. This differs from current behavior, which
caused 0 to be returned and actually does not make any sense, as
broken application will simply repeat the read getting into endless
loop.

Note that we treat 0 as a special case, according to the standard:

"Before any action described below is taken, and if nbyte is zero,
the read() function may detect and return errors as described below.
In the absence of errors, or if error detection is not performed,
the read() function shall return zero and have no other results."

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/misc/uinput.c