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, 25 Jul 2016 09:49:56 +0900 From: Sergey Senozhatsky <sergey.senozhatsky.work@...il.com> To: SF Markus Elfring <elfring@...rs.sourceforge.net> Cc: linux-mm@...ck.org, Minchan Kim <minchan@...nel.org>, Nitin Gupta <ngupta@...are.org>, Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>, LKML <linux-kernel@...r.kernel.org>, kernel-janitors@...r.kernel.org, Julia Lawall <julia.lawall@...6.fr>, Andrew Morton <akpm@...ux-foundation.org> Subject: Re: [PATCH] zsmalloc: Delete an unnecessary check before the function call "iput" On (07/22/16 20:02), SF Markus Elfring wrote: > The iput() function tests whether its argument is NULL and then > returns immediately. Thus the test around the call is not needed. > > This issue was detected by using the Coccinelle software. there is no issue; the change is just cosmetic. > Signed-off-by: Markus Elfring <elfring@...rs.sourceforge.net> Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@...il.com> alloc_anon_inode() returns ERR_PTR, so I'd probably rather change iput() to do IS_ERR_OR_NULL instead of !NULL. inode = alloc_anon_inode(); if (IS_ERR(inode)) { inode = NULL; ^^^^^^^^^^^^^ } ... iput(inode); this NULL assignment on error path is a bit fragile. IOW, something like this --- diff --git a/fs/inode.c b/fs/inode.c index 559a9da..f1b7bd2 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -1497,7 +1497,7 @@ static void iput_final(struct inode *inode) */ void iput(struct inode *inode) { - if (!inode) + if (IS_ERR_OR_NULL(inode)) return; BUG_ON(inode->i_state & I_CLEAR); retry: --- -ss > --- > mm/zsmalloc.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > index 5e5237c..7b5fd2b 100644 > --- a/mm/zsmalloc.c > +++ b/mm/zsmalloc.c > @@ -2181,8 +2181,7 @@ static int zs_register_migration(struct zs_pool *pool) > static void zs_unregister_migration(struct zs_pool *pool) > { > flush_work(&pool->free_work); > - if (pool->inode) > - iput(pool->inode); > + iput(pool->inode); > } > > /* > -- > 2.9.2 >
Powered by blists - more mailing lists