From patchwork Mon Nov 9 19:00:27 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathias Krause X-Patchwork-Id: 7586281 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: X-Original-To: patchwork-linux-pci@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id DC217C05C6 for ; Mon, 9 Nov 2015 19:00:46 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id ECDBC20211 for ; Mon, 9 Nov 2015 19:00:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 142E2201EC for ; Mon, 9 Nov 2015 19:00:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751926AbbKITAo (ORCPT ); Mon, 9 Nov 2015 14:00:44 -0500 Received: from mail-wm0-f41.google.com ([74.125.82.41]:34910 "EHLO mail-wm0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751628AbbKITAn (ORCPT ); Mon, 9 Nov 2015 14:00:43 -0500 Received: by wmdw130 with SMTP id w130so42294690wmd.0 for ; Mon, 09 Nov 2015 11:00:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=SRaumb4jt1G2lTVaupMvtTrscJlU2mKKeRkUsR+PPjk=; b=z8tF4KD7LGLg7iJkS9q1DFjWO35KOvpqehxj+7UmlpvueDQj+QYBFJA0UaMBx4wFyX 4ZWlEXC3vu6zHPAmVU3bXQnQod6GLR5/qTdqPbgCJaKADbWVbs1x6B+1NsrCKEBsGeJJ x0LvdN+IeWQxlS3AQbNWR9b1p58ROxrMA2YoObWixFG4vKvc3ll+YamPiYT9xKcE/sDX fkHLbD4Zk1WSvcusYLSR4H5p6HUUEdPPICRMX4F/+76vwkjQvhVyfFOzRn0YNA2zYxxi 7SKZjEjJmebkUR9xhbYfl6oXr+7gh4TyKsmuXDaqkASMBabUy8jihbrEsqUmtlSRSOjB ZMPg== X-Received: by 10.194.76.178 with SMTP id l18mr31927617wjw.75.1447095641493; Mon, 09 Nov 2015 11:00:41 -0800 (PST) Received: from jig.fritz.box (p54B302F7.dip0.t-ipconnect.de. [84.179.2.247]) by smtp.gmail.com with ESMTPSA id h4sm16829515wjx.41.2015.11.09.11.00.40 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Nov 2015 11:00:40 -0800 (PST) From: Mathias Krause To: Bjorn Helgaas Cc: linux-pci@vger.kernel.org, Mathias Krause , Sasha Levin , Prarit Bhargava Subject: [PATCH v2] PCI: Prevent out of bounds access in numa_node override - part 2 Date: Mon, 9 Nov 2015 20:00:27 +0100 Message-Id: <1447095627-12798-1-git-send-email-minipli@googlemail.com> X-Mailer: git-send-email 1.7.10.4 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Spam-Status: No, score=-7.1 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=unavailable 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 Commit 1266963170f5 ("PCI: Prevent out of bounds access in numa_node override") missed that the user provided node could also be negative. Handle this case as well to avoid out-of-bounds accesses to the node_states[] array. However, allow the special value -1, i.e. NUMA_NO_NODE, to be able to set the 'no specific node' configuration. Fixes: 1266963170f5 ("PCI: Prevent out of bounds access in numa_node...") Signed-off-by: Mathias Krause Cc: Sasha Levin Cc: Prarit Bhargava Cc: stable@vger.kernel.org # v3.19+ --- v2: allow NUMA_NO_NODE drivers/pci/pci-sysfs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 92618686604c..6e9818227b19 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c @@ -216,7 +216,10 @@ static ssize_t numa_node_store(struct device *dev, if (ret) return ret; - if (node >= MAX_NUMNODES || !node_online(node)) + if (node < NUMA_NO_NODE || node >= MAX_NUMNODES) + return -EINVAL; + + if (node != NUMA_NO_NODE && !node_online(node)) return -EINVAL; add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);