From: Chao Yu <chao2.yu@samsung.com>
To: 'Jaegeuk Kim' <jaegeuk@kernel.org>,
'Dan Carpenter' <dan.carpenter@oracle.com>
Cc: linux-f2fs-devel@lists.sourceforge.net
Subject: Re: f2fs: avoid abnormal behavior on broken symlink
Date: Wed, 22 Apr 2015 14:28:22 +0800 [thread overview]
Message-ID: <051e01d07cc5$9fb78370$df268a50$@samsung.com> (raw)
In-Reply-To: <20150421182045.GB66459@jaegeuk-mac02>
Hi all,
> -----Original Message-----
> From: Jaegeuk Kim [mailto:jaegeuk@kernel.org]
> Sent: Wednesday, April 22, 2015 2:21 AM
> To: Dan Carpenter
> Cc: linux-f2fs-devel@lists.sourceforge.net
> Subject: Re: [f2fs-dev] f2fs: avoid abnormal behavior on broken symlink
>
> Hi Dan,
>
> Thank you for letting me know.
> I wrote a patch for this below.
>
> Thanks,
>
> On Mon, Apr 20, 2015 at 05:49:47PM +0300, Dan Carpenter wrote:
> > Hello Jaegeuk Kim,
> >
> > The patch feb7cbb079e6: "f2fs: avoid abnormal behavior on broken
> > symlink" from Apr 15, 2015, leads to the following static checker
> > warning:
> >
> > fs/f2fs/namei.c:304 f2fs_follow_link()
> > warn: 'page' isn't an ERR_PTR
> >
> > fs/f2fs/namei.c
> > 299 static void *f2fs_follow_link(struct dentry *dentry, struct nameidata *nd)
> > 300 {
> > 301 struct page *page;
> > 302
> > 303 page = page_follow_link_light(dentry, nd);
> > 304 if (IS_ERR(page))
> > ^^^^
> > The code in page_follow_link_light() is a bit hard to follow but it
> > returns NULL on error.
I try to find out the other callers' error handling method for
page_follow_link_light, and it shows all of them use the "IS_ERR" one.
In page_follow_link_light I also can't find a path which will return a NULL value.
So, Dan, is that report from smatch not true? or I made a mistake? If so, please
correct me.
Thanks,
> >
> > 305 return page;
> > 306
> > 307 /* this is broken symlink case */
> > 308 if (*nd_get_link(nd) == 0) {
> > 309 kunmap(page);
> > ^^^^^^^^^^^^
> > Potential NULL deref.
> >
> > 310 page_cache_release(page);
> > 311 return ERR_PTR(-ENOENT);
> > 312 }
> > 313 return page;
> > 314 }
> >
> > regards,
> > dan carpenter
>
> >From 52889398489d4edc0cb016ae24036b994e3d9ccd Mon Sep 17 00:00:00 2001
> From: Jaegeuk Kim <jaegeuk@kernel.org>
> Date: Mon, 20 Apr 2015 16:30:14 -0700
> Subject: [PATCH] f2fs: fix wrong error hanlder in f2fs_follow_link
>
> The page_follow_link_light returns NULL and its error pointer was remained
> in nd->path.
>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> ---
> fs/f2fs/namei.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
> index 407dde3..678b6dd 100644
> --- a/fs/f2fs/namei.c
> +++ b/fs/f2fs/namei.c
> @@ -301,8 +301,8 @@ static void *f2fs_follow_link(struct dentry *dentry, struct nameidata *nd)
> struct page *page;
>
> page = page_follow_link_light(dentry, nd);
> - if (IS_ERR(page))
> - return page;
> + if (!page)
> + return NULL;
>
> /* this is broken symlink case */
> if (*nd_get_link(nd) == 0) {
> --
> 2.1.1
>
> ------------------------------------------------------------------------------
> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
> Develop your own process in accordance with the BPMN 2 standard
> Learn Process modeling best practices with Bonita BPM through live exercises
> http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
next prev parent reply other threads:[~2015-04-22 6:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-20 14:49 f2fs: avoid abnormal behavior on broken symlink Dan Carpenter
2015-04-21 18:20 ` Jaegeuk Kim
2015-04-22 6:28 ` Chao Yu [this message]
2015-04-22 7:48 ` Jaegeuk Kim
2015-04-22 9:31 ` Chao Yu
2015-04-22 16:52 ` Jaegeuk Kim
2015-04-22 10:27 ` Dan Carpenter
2015-04-22 18:13 ` Jaegeuk Kim
2015-04-22 19:19 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='051e01d07cc5$9fb78370$df268a50$@samsung.com' \
--to=chao2.yu@samsung.com \
--cc=dan.carpenter@oracle.com \
--cc=jaegeuk@kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.