From patchwork Sat Jul 19 23:49:06 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 4590151 Return-Path: X-Original-To: patchwork-linux-input@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 3994F9F1D6 for ; Sat, 19 Jul 2014 23:49:22 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 416FD2011D for ; Sat, 19 Jul 2014 23:49:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4EFD920115 for ; Sat, 19 Jul 2014 23:49:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753773AbaGSXtT (ORCPT ); Sat, 19 Jul 2014 19:49:19 -0400 Received: from mail-pa0-f42.google.com ([209.85.220.42]:43175 "EHLO mail-pa0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752064AbaGSXtS (ORCPT ); Sat, 19 Jul 2014 19:49:18 -0400 Received: by mail-pa0-f42.google.com with SMTP id lf10so7533089pab.15 for ; Sat, 19 Jul 2014 16:49:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=QGlGYfTMJ2kLa04JMrUMLvRFHlX5aYPKXdZfeAGP+L8=; b=THoW2b4iIy0ihCxN0n+uPfzBVrxUZdA92Xv7cpIe7GjIdwOKVwQd13fpjLP7n6mG/k iTyLpMRcBy2T6T/6Taw+I9gS4vxIL6K6vX//qiCf0xhROoF6QTGP9PeOshzbxmF2Qg78 vklnoQQNmNxSMK0AYCKvYB5GWYk1tcAVMZBlfUfxLTBG6fPViGH/tdkGke2QtMyzi2cI YrZpbaKzcPGRgrcwWAR5XvDXThsmrFuE0VDoVGkOq/0q5owLdVelj8FzZgoSTZVB55vY BwcKbV+drKeQvpeXU4FSO0abPxedaQTRJ1qSLshPN/uxsyHeNkMcG/1WsQnrHmFgrVN7 7qfQ== X-Received: by 10.70.88.205 with SMTP id bi13mr15161084pdb.43.1405813758243; Sat, 19 Jul 2014 16:49:18 -0700 (PDT) Received: from mailhub.coreip.homeip.net (c-50-136-245-103.hsd1.ca.comcast.net. [50.136.245.103]) by mx.google.com with ESMTPSA id v9sm12980237pdp.88.2014.07.19.16.49.17 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Sat, 19 Jul 2014 16:49:17 -0700 (PDT) Date: Sat, 19 Jul 2014 16:49:06 -0700 From: Dmitry Torokhov To: linux-input@vger.kernel.org Cc: Benson Leung , David Herrmann , Andrew de los Reyes , Henrik Rydberg , linux-kernel@vger.kernel.org Subject: [PATCH] Input: fix defuzzing logic Message-ID: <20140719234843.GA28580@core.coreip.homeip.net> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP We attempt to remove noise from coordinates reported by devices in input_handle_abs_event(), unfortunately, unless we were dropping the event altogether, we were ignoring the adjusted value and were passing on the original value instead. Reviewed-by: Andrew de los Reyes Reviewed-by: Benson Leung Signed-off-by: Dmitry Torokhov Reviewed-by: David Herrmann Reviewed-by: Henrik Rydberg --- drivers/input/input.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/input/input.c b/drivers/input/input.c index 1c4c0db..29ca0bb 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -257,9 +257,10 @@ static int input_handle_abs_event(struct input_dev *dev, } static int input_get_disposition(struct input_dev *dev, - unsigned int type, unsigned int code, int value) + unsigned int type, unsigned int code, int *pval) { int disposition = INPUT_IGNORE_EVENT; + int value = *pval; switch (type) { @@ -357,6 +358,7 @@ static int input_get_disposition(struct input_dev *dev, break; } + *pval = value; return disposition; } @@ -365,7 +367,7 @@ static void input_handle_event(struct input_dev *dev, { int disposition; - disposition = input_get_disposition(dev, type, code, value); + disposition = input_get_disposition(dev, type, code, &value); if ((disposition & INPUT_PASS_TO_DEVICE) && dev->event) dev->event(dev, type, code, value);