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
| ||
|
Date: Mon, 1 Aug 2016 08:39:32 +0200 (CEST) From: Julia Lawall <julia.lawall@...6.fr> To: Sebastian Ott <sebott@...ux.vnet.ibm.com> cc: Julia Lawall <julia.lawall@...6.fr>, Amitoj Kaur Chawla <amitoj1606@...il.com>, Gerald Schaefer <gerald.schaefer@...ibm.com>, Martin Schwidefsky <schwidefsky@...ibm.com>, Heiko Carstens <heiko.carstens@...ibm.com>, linux-s390@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH] s390/pci: Remove unnecessary if condition On Fri, 29 Jul 2016, Sebastian Ott wrote: > On Fri, 29 Jul 2016, Julia Lawall wrote: > > On Fri, 29 Jul 2016, Sebastian Ott wrote: > > > On Fri, 29 Jul 2016, Amitoj Kaur Chawla wrote: > > > > Remove unnecessary error handling because the only failure value that > > > > can be returned is NULL and so the test can never be true. > > > > > > > > The Coccinelle semantic patch used to make this change is as follows: > > > > @@ > > > > expression e; > > > > @@ > > > > > > > > e = debugfs_create_file(...); > > > > - if(IS_ERR(e)) { e = NULL; } > > > > > > Nope. For !CONFIG_DEBUG_FS debugfs_create_file returns an ERR_PTR. > > > > Clicking around in lxr doesn't show that, but perhaps an alternative > > definition is overlooked? > > It looks that way. > > > [sebott@...leppi linux]$ git grep -W "debugfs_create_file(" include/linux/debugfs.h > include/linux/debugfs.h:struct dentry *debugfs_create_file(const char *name, umode_t mode, > include/linux/debugfs.h- struct dentry *parent, void *data, > include/linux/debugfs.h- const struct file_operations *fops); > -- > include/linux/debugfs.h:static inline struct dentry *debugfs_create_file(const char *name, umode_t mode, > include/linux/debugfs.h- struct dentry *parent, void *data, > include/linux/debugfs.h- const struct file_operations *fops) > include/linux/debugfs.h-{ > include/linux/debugfs.h- return ERR_PTR(-ENODEV); > include/linux/debugfs.h-} > include/linux/debugfs.h- Thanks for the pointer. I guess that if the result of debugfs_create_file is actully dereferenced, then both test should be present, eg: drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c ent = debugfs_create_file(name, S_IFREG | S_IRUGO, root, ring, &amdgpu_debugfs_ring_fops); if (IS_ERR(ent)) return PTR_ERR(ent); i_size_write(ent->d_inode, ring->ring_size + 12); This problem seems to only occur in this directory. thanks, julia
Powered by blists - more mailing lists