From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BF566072FB7 for ; Wed, 4 Nov 2026 19:20:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=YnpDRJ92; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=NiQpXkOL DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Unsubscribe-Post: List-Owner; bh=WXeWRtHDTvlcvQqGcGXKpHSOkC75TIYAS6cttW7V/+A=; b=YnpDRJ92Uvaf23 r9Sp6kix5uNct5IuGFTEcsVVeNFgazbiVUd+OD0qa4cGC9ivNOBubUUQpnXbjGmaf/f0H/zKX99bc dvY2uGWZuXW/pUiTe7hdgKe5rRzmrUk2rqtbJ5qkw1Nbg/l1w++Tc1vepTi4p6QoADcUbJ89c+I7+ 6drsp4QvlRylkgY0Z0KVkgbzwDXflM7aHW82/sUiuf9gtovteI1vXqbR+Hu8VMypXNBbOC6QkR95t XMdv5HOBwnmHojf+Gpuu5G82TtOb6wfsQxmoJ3PabX5lIAlCow+RD0VN0P5RYrMwC4FtmkNw0XP/S x6WirJlSIdsAmAz033Hg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xOgXG-00000006ZFs-3pYa; Wed, 04 Nov 2026 19:20:38 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xOgXF-00000006ZFV-16qX; Wed, 04 Nov 2026 19:20:37 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 9023960D80; Wed, 4 Nov 2026 19:20:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7CB4C1F000C1; Wed, 4 Nov 2026 19:20:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793820036; bh=WXeWRtHDTvlcvQqGcGXKpHSOkC75TIYAS6cttW7V/+A=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=NiQpXkOL9hkwE4/WfxFpkq7xHtcYi6yJMSB/+5Lpz/WzmPrYAgiA9H9E5e8qDQYcu CVPJ+eFkDXwM8lejKQ7l89O80BgN+V6VLVj2MFzydedaUh2ITZxqC0P3DhBM8SW3kd pCt0I4NIWeLQoB+KBmB/wtCubDHhs67Vexmb2baBUUIt9W1Eq7UCs6W7ysRAb8/LDD SDwIlPhMq8t6XaxPl3DjFQXZ3Ur1uNe/CRJYwyWO/oMuT1/a92x7gI55ZC16NTFei8 hciC0aS2Vu+Ct9yg83X4LRieliSduhcrx1rvxzn+tzyYmiH3Ei2GE3zJ0PaQhCEuEm WxwcvbYHuQ6iA== From: Christian Brauner To: linux-fsdevel@vger.kernel.org Cc: Linus Torvalds , Jann Horn , Josef Bacik , Chris Mason , Jeff Layton , NeilBrown , Eric Dumazet , Thomas Gleixner , Al Viro , Jonathan Corbet , Christoph Hellwig , Greg Kroah-Hartman , Joel Granados , Kees Cook , Jan Kara , Jan Kara , linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org, linux-um@lists.infradead.org, linux-wireless@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, netdev@vger.kernel.org, ntfs3@lists.linux.dev, platform-driver-x86@vger.kernel.org, coreteam@netfilter.org, kexec@lists.infradead.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, netfilter-devel@vger.kernel.org, dri-devel@lists.freedesktop.org, ibm-acpi-devel@lists.sourceforge.net, jfs-discussion@lists.sourceforge.net, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-cifs@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-hwmon@vger.kernel.org, linux-mm@kvack.org, linux-sh@vger.kernel.org, linux-usb@vger.kernel.org, samba-technical@lists.samba.org, sparclinux@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-doc@vger.kernel.org, linux-serial@vger.kernel.org, linux-atm-general@lists.sourceforge.net, Takashi Iwai , linux-input@vger.kernel.org, linux-raid@vger.kernel.org, linux-ext4@vger.kernel.org, linux-modules@vger.kernel.org, linux-debuggers@vger.kernel.org, "Christian Brauner (Amutable)" , Chuck Lever , stable@vger.kernel.org Subject: [PATCH RESEND v2 18/51] platform/x86: toshiba_acpi: reject malformed brightness and fan writes Date: Wed, 4 Nov 2026 20:20:22 +0100 Message-ID: <20261104-work-procfs-bugfixes-v2-18-021c84d852e0@kernel.org> In-Reply-To: <20261104-work-procfs-bugfixes-v2-0-021c84d852e0@kernel.org> References: <20261104-work-procfs-bugfixes-v2-0-021c84d852e0@kernel.org> X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.17-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1850; i=brauner@kernel.org; h=from:subject:message-id; bh=dBPyRrfA4AE5uU+SDwP01KQAXBYhly7L9ZsRpXHhzrM=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMWS9bnw4ha3i4UvNWUm2/209lmecNc23PLjw0wP/o3OiK 6UDhFNWd5SyMIhxMciKKbI4tJuEyy3nqdhslKkBM4eVCWQIAxenAExE7Bkjw6nnQYwPZr7OET2+ qr74iELMBq1imTVmvO3H9S3OC3yaIsnI0LnEIuBiSUVbEM+ZK3VNl7d/f8y78dePT78Xx+be/BW lzgQA X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Content-Transfer-Encoding: 8bit X-BeenThere: linux-um@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-um" X-Spam-Status: No, score=-18.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 When lcd_proc_write() and fan_proc_write() were refactored their checks were inverted but the && stayed. They only fail if sscanf() didn't parse anything and the value is out of range at the same time, and for the brightness value < 0 && value > levels can't be true at all. So an out of range brightness or fan setting is passed on to the hardware, and so is the uninitialized value if nothing could be parsed. Restore the checks as they were before the refactoring. Fixes: e1a949c1b988 ("toshiba_acpi: Refactor *{get, set} functions return value") Fixes: 3e07e5baa2af ("toshiba_acpi: Add set_fan_status function") Cc: stable@vger.kernel.org Signed-off-by: Christian Brauner (Amutable) --- drivers/platform/x86/toshiba_acpi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c index a0b8060836d0..9eb8f1e5aeda 100644 --- a/drivers/platform/x86/toshiba_acpi.c +++ b/drivers/platform/x86/toshiba_acpi.c @@ -1498,8 +1498,8 @@ static ssize_t lcd_proc_write(struct file *file, const char __user *buf, cmd[len] = '\0'; levels = dev->backlight_dev->props.max_brightness + 1; - if (sscanf(cmd, " brightness : %i", &value) != 1 && - value < 0 && value > levels) + if (sscanf(cmd, " brightness : %i", &value) != 1 || + value < 0 || value >= levels) return -EINVAL; if (set_lcd_brightness(dev, value)) @@ -1678,8 +1678,8 @@ static ssize_t fan_proc_write(struct file *file, const char __user *buf, return -EFAULT; cmd[len] = '\0'; - if (sscanf(cmd, " force_on : %i", &value) != 1 && - value != 0 && value != 1) + if (sscanf(cmd, " force_on : %i", &value) != 1 || + value < 0 || value > 1) return -EINVAL; if (set_fan_status(dev, value)) -- 2.53.0