Input: uinput - fix crash when using ABS events
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 19 Sep 2015 18:22:57 +0000 (11:22 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 21 Sep 2015 16:32:41 +0000 (09:32 -0700)
commit72d4736253af74147b1fa68145b2f4c61d1f37e1
treeea44ab05eb9a061951c46bb6c1398900df1b9497
parented75a14eb554995c522a3b861d4c86a7eddb2ad7
Input: uinput - fix crash when using ABS events

Commit b6d30968d86c45a7bb599eaca13ff048d3fa576c (Input: uinput - switch to
using for_each_set_bit()) switched driver to use for_each_set_bit().
However during initial write of the uinput structure that contains min/max
data for all possible axes none of them are reflected in dev->absbit yet
and so we were skipping over all of them and were not allocating absinfo
memory which caused crash later when driver tried to sens EV_ABS events:

<1>[   15.064330] BUG: unable to handle kernel NULL pointer dereference at 0000000000000024
<1>[   15.064336] IP: [<ffffffff8163f142>] input_handle_event+0x232/0x4e0
<4>[   15.064343] PGD 0
<4>[   15.064345] Oops: 0000 [#1] SMP

Fixes: b6d30968d86c45a7bb599eaca13ff048d3fa576c
Cc: stable@vger.kernel.org
Reported-by: Stephen Chandler Paul <cpaul@redhat.com>
Tested-by: Stephen Chandler Paul <cpaul@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/uinput.c