From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751917AbdBAIfu (ORCPT ); Wed, 1 Feb 2017 03:35:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:56278 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751639AbdBAIft (ORCPT ); Wed, 1 Feb 2017 03:35:49 -0500 Date: Wed, 1 Feb 2017 09:35:44 +0100 From: Benjamin Tissoires To: Dmitry Torokhov Cc: linux-input@vger.kernel.org, Jiri Kosina , linux-kernel@vger.kernel.org Subject: Re: [PATCH] Input: refuse to register absolute devices without absinfo Message-ID: <20170201083543.GC31658@mail.corp.redhat.com> References: <20170131231515.GA37218@dtor-ws> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20170131231515.GA37218@dtor-ws> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 01 Feb 2017 08:35:49 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Jan 31 2017 or thereabouts, Dmitry Torokhov wrote: > If device is supposed to send absolute events (i.e. EV_ABS bit is set in > dev->evbit) but dev->absinfo is not allocated, then the driver has done > something wrong, and we should not register such device. Otherwise we'll > crash later, when driver tries to send absolute event. > > Signed-off-by: Dmitry Torokhov > --- Looks good to me: Reviewed-by: Benjamin Tissoires Cheers, Benjamin > drivers/input/input.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/input/input.c b/drivers/input/input.c > index f0d2d45a68e3..4617f2db9e36 100644 > --- a/drivers/input/input.c > +++ b/drivers/input/input.c > @@ -2095,6 +2095,12 @@ int input_register_device(struct input_dev *dev) > const char *path; > int error; > > + if (test_bit(EV_ABS, dev->evbit) && !dev->absinfo) { > + dev_err(&dev->dev, > + "Absolute device without dev->absinfo, refusing to register\n"); > + return -EINVAL; > + } > + > if (dev->devres_managed) { > devres = devres_alloc(devm_input_device_unregister, > sizeof(struct input_devres), GFP_KERNEL); > -- > 2.11.0.483.g087da7b7c-goog > > > -- > Dmitry