lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 9 Oct 2006 21:49:36 -0700
From:	Andrew Morton <akpm@...l.org>
To:	Paul Mackerras <paulus@...ba.org>
Cc:	greg@...ah.com, linux-kernel@...r.kernel.org
Subject: Re: Why is device_create_file __must_check?

On Tue, 10 Oct 2006 14:32:33 +1000
Paul Mackerras <paulus@...ba.org> wrote:

> I am seeing a bunch of warnings about not checking the return value
> from device_create_file() for code like this (from
> arch/powerpc/kernel/pci_64.c):
> 
> static ssize_t pci_show_devspec(struct device *dev,
> 		struct device_attribute *attr, char *buf)
> {
> 	struct pci_dev *pdev;
> 	struct device_node *np;
> 
> 	pdev = to_pci_dev (dev);
> 	np = pci_device_to_OF_node(pdev);
> 	if (np == NULL || np->full_name == NULL)
> 		return 0;
> 	return sprintf(buf, "%s", np->full_name);
> }
> static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL);
> 
> void pcibios_add_platform_entries(struct pci_dev *pdev)
> {
> 	device_create_file(&pdev->dev, &dev_attr_devspec);
> }
> 
> What bad thing could happen if device_create_file fails, other than
> that the "devspec" file doesn't appear in sysfs?

There are no super-strong reasons here, but if device_create_file() fails
then the required control files aren't there and the subsystem isn't
working as intended.  If it's in a module then we should fail the modprobe. 
If it's a bootup thing then best we can do is to panic.  Or at least log
the event.

The most common cause of this is a programming error: we tried to create
the same entry twice.   We want to know about that.

>  I don't see how the
> error could lead to any null pointer dereference later on or anything
> like that.  If some bad thing could happen, how do I avert that?  If
> nothing bad will happen, why does device_create_file have __must_check
> on it?

Because it can fail.  We need to take _some_ action if the setup failed - at
least report it so the user (and the kernel developers) know that something
is going wrong.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ