From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CBB67ECE563 for ; Tue, 18 Sep 2018 00:48:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7EC44214DA for ; Tue, 18 Sep 2018 00:48:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OjhfHwhH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7EC44214DA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729535AbeIRGR6 (ORCPT ); Tue, 18 Sep 2018 02:17:58 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:34791 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729484AbeIRGRz (ORCPT ); Tue, 18 Sep 2018 02:17:55 -0400 Received: by mail-pf1-f196.google.com with SMTP id k19-v6so119740pfi.1; Mon, 17 Sep 2018 17:48:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tMA4CZejwy/bgOlPy0MmgAKcWO/jJ6UDYO2B4khfCIY=; b=OjhfHwhHHI1JEOwPQkXJdgBHaX78ef9iVrSNNbWtYGEck5nfIsbqXd7nkqcxnh+YLB qfX1aYCpp2hIiOfZz6unjWwZOu1BFof5Tozf7YrGFS8dWf3+W2/RwgjFXufccuRaXYGs mO7ZXsR6ptugY4xn2v/0eVvGOzd1GReeGGToelXYsHWrbVVzAZJw66ctiOkUn+cDWm1C zLF23h/MscKy8Wk9WwTawuq0tZqTV6u1cwT2+kT9MaCQgSbBFAippGHh0s+HL7LOLJGx qqjNGL+J71QarwIYVW8hiWapj8ZgjsJIEgAAZqFTpkavRphz+D80yHU2DEcU8vCCMbtT U0nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tMA4CZejwy/bgOlPy0MmgAKcWO/jJ6UDYO2B4khfCIY=; b=bGMWBP5sbOWoJDP/Lf8O5Fjz/zilM9nyX6ZDICdBwGtQf4jvjq9FQgxiduMkRV2jUt weqFe5U0iSJNUUgYWDQogDQTJMK5fcnJ72d0v/VmaRcB4az+XFZDkJHV3vdTF+6HHq7U ZtumRKpNhSr/7LOQNDJpH8qM2dPYjF/pdtCZWgzvH0hsPPdRGnpU/tJOvEGS2L8Acp8Y XjCgqSTVGux9cDwCKqnoAopAMIZFY9e5Uz57EVrc/5MjzLuFT9sh88lQH/05S6C7O+dB B+VkSN3yMgykB9LDsOAFVLMzsDh02mbrB5ZTYINI/d+rw6WlEWKhDQ6nn7FKnvfF22QG KAxw== X-Gm-Message-State: APzg51CZjQwqaKezX1ggjylahojN7b+BsbVPGo4vawG4sXwXlNZueCE4 f8gB8hHE/gz0AzxqpUYeIWi7oE4U X-Google-Smtp-Source: ANB0VdYpzVNRZHvQkJtl5f33enpFHLhcxHF6Wq6QX0Ksb8/OeA+hiakmNvh4vs0OkAF5ufhzwIF7zA== X-Received: by 2002:a63:a35f:: with SMTP id v31-v6mr25553394pgn.261.1537231681154; Mon, 17 Sep 2018 17:48:01 -0700 (PDT) Received: from dtor-ws.mtv.corp.google.com ([2620:15c:202:201:3adc:b08c:7acc:b325]) by smtp.gmail.com with ESMTPSA id w69-v6sm26053316pgd.37.2018.09.17.17.47.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Sep 2018 17:47:59 -0700 (PDT) From: Dmitry Torokhov To: linux-input@vger.kernel.org, Tim Schumacher Cc: linux-kernel@vger.kernel.org Subject: [PATCH 17/20] Input: only credit entropy when events are generated by a device Date: Mon, 17 Sep 2018 17:47:29 -0700 Message-Id: <20180918004732.9875-17-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.19.0.397.gdd90340f6a-goog In-Reply-To: <20180918004732.9875-1-dmitry.torokhov@gmail.com> References: <20180918004732.9875-1-dmitry.torokhov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently we credit entropy (via add_input_randomness()) regardless of where an event comes form, a device itself, or an input handler, such as evdev (and thus from userspace). While access to event devices is supposed to be tightly controlled (one does not want random processes to be able to observe or inject keystrokes), developers may use evdev to inject events for testing purposes. Let's make sure that such events to not contribute to the entropy to keep the pool 'pure' and do not expose developer's boxes to not so random data. Signed-off-by: Dmitry Torokhov --- drivers/input/input.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/input/input.c b/drivers/input/input.c index 260f00ebe34d..0126b8bb6afa 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -368,12 +368,15 @@ static int input_get_disposition(struct input_dev *dev, } static void input_handle_event(struct input_dev *dev, - unsigned int type, unsigned int code, int value) + unsigned int type, unsigned int code, int value, + bool can_credit_entropy) { int disposition = input_get_disposition(dev, type, code, &value); - if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN) + if (can_credit_entropy && + disposition != INPUT_IGNORE_EVENT && type != EV_SYN) { add_input_randomness(type, code, value); + } if ((disposition & INPUT_PASS_TO_DEVICE) && dev->event) dev->event(dev, type, code, value); @@ -434,7 +437,7 @@ void input_event(struct input_dev *dev, if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_irqsave(&dev->event_lock, flags); - input_handle_event(dev, type, code, value); + input_handle_event(dev, type, code, value, true); spin_unlock_irqrestore(&dev->event_lock, flags); } } @@ -464,7 +467,7 @@ void input_inject_event(struct input_handle *handle, rcu_read_lock(); grab = rcu_dereference(dev->grab); if (!grab || grab == handle) - input_handle_event(dev, type, code, value); + input_handle_event(dev, type, code, value, false); rcu_read_unlock(); spin_unlock_irqrestore(&dev->event_lock, flags); -- 2.19.0.397.gdd90340f6a-goog