浏览代码

PCI: Don't leak memory if sysfs_create_bin_file() fails

If sysfs_create_bin_file() fails, pci_create_attr() leaks the struct
bin_attribute it allocated previously.

Free the struct bin_attribute if pci_create_attr() fails.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Bjorn Helgaas 9 年之前
父节点
当前提交
b562ec8f74
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      drivers/pci/pci-sysfs.c

+ 2 - 0
drivers/pci/pci-sysfs.c

@@ -1159,6 +1159,8 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
 		res_attr->size = pci_resource_len(pdev, num);
 		res_attr->size = pci_resource_len(pdev, num);
 		res_attr->private = &pdev->resource[num];
 		res_attr->private = &pdev->resource[num];
 		retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr);
 		retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr);
+		if (retval)
+			kfree(res_attr);
 	} else
 	} else
 		retval = -ENOMEM;
 		retval = -ENOMEM;