lkml.org 
[lkml]   [2015]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.19.y-ckt 077/128] PCI: Prevent out of bounds access in numa_node override
    Date
    3.19.8-ckt12 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Mathias Krause <minipli@googlemail.com>

    commit 3dcc8d39cf15fa3ceabedcffcbd3958fe953555a upstream.

    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 override")
    Fixes: 63692df103e9 ("PCI: Allow numa_node override via sysfs")
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    CC: Sasha Levin <sasha.levin@oracle.com>
    CC: Prarit Bhargava <prarit@redhat.com>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    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 9261868..eead54c 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 < 0 && 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);
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-12-16 19:01    [W:2.960 / U:0.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site