[lkml]   [2011]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[61/87] PCI: sysfs: Fix failure path for addition of "vpd" attribute
    2.6.37-stable review patch.  If anyone has any objections, please let us know.


    From: Ben Hutchings <>

    commit 0f12a4e29368a9476076515881d9ef4e5876c6e2 upstream.

    Commit 280c73d ("PCI: centralize the capabilities code in
    pci-sysfs.c") changed the initialisation of the "rom" and "vpd"
    attributes, and made the failure path for the "vpd" attribute
    incorrect. We must free the new attribute structure (attr), but
    instead we currently free dev->vpd->attr. That will normally be NULL,
    resulting in a memory leak, but it might be a stale pointer, resulting
    in a double-free.

    Found by inspection; compile-tested only.

    Signed-off-by: Ben Hutchings <>
    Signed-off-by: Jesse Barnes <>
    Signed-off-by: Greg Kroah-Hartman <>

    drivers/pci/pci-sysfs.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/pci/pci-sysfs.c
    +++ b/drivers/pci/pci-sysfs.c
    @@ -1088,7 +1088,7 @@ static int pci_create_capabilities_sysfs
    attr->write = write_vpd_attr;
    retval = sysfs_create_bin_file(&dev->dev.kobj, attr);
    if (retval) {
    - kfree(dev->vpd->attr);
    + kfree(attr);
    return retval;
    dev->vpd->attr = attr;

     \ /
      Last update: 2011-03-22 00:45    [W:0.019 / U:104.272 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site