Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1271466

Re: [PATCH] net-scm: Delete an unnecessary check before the function call "kfree"

From Daniel Borkmann <daniel@iogearbox.net>
Newsgroups linux.kernel
Subject Re: [PATCH] net-scm: Delete an unnecessary check before the function call "kfree"
Date 2015-11-17 18:20 +0100
Message-ID <qvS5b-7Xf-9@gated-at.bofh.it> (permalink)
References (13 earlier) <mSsDN-4wa-61@gated-at.bofh.it> <mSsDN-4wa-63@gated-at.bofh.it> <mSsDN-4wa-65@gated-at.bofh.it> <mSsDN-4wa-33@gated-at.bofh.it> <qvRCc-7wq-51@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 11/17/2015 05:43 PM, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Tue, 17 Nov 2015 17:37:22 +0100
>
> The kfree() 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.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>   net/core/scm.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/core/scm.c b/net/core/scm.c
> index 3b6899b..4f64173 100644
> --- a/net/core/scm.c
> +++ b/net/core/scm.c
> @@ -193,7 +193,7 @@ int __scm_send(struct socket *sock, struct msghdr *msg, struct scm_cookie *p)
>   		}
>   	}
>
> -	if (p->fp && !p->fp->count)
> +	if (likely(!p->fp->count))
>   	{
>   		kfree(p->fp);
>   		p->fp = NULL;
>

Really, I don't like your blind, silly removals everywhere throughout
the kernel tree for these tests. Eric already mentioned that in some
situations where it's critical, it actually slows down the code, i.e.
you'll have an extra function call to get there and inside kfree() /
kfree_skb() / etc, the test is actually marked as unlikely().

Anyway, I think this one in particular could throw a NULL pointer deref.
You even say in your commit message "kfree() function tests whether its
argument [p->fp] is NULL" and yet if that is the case then, you already
deref'ed on the p->fp->count test ???
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] net-scm: Delete an unnecessary check before the function call  "kfree" SF Markus Elfring <elfring@users.sourceforge.net> - 2015-11-17 17:50 +0100
  Re: [PATCH] net-scm: Delete an unnecessary check before the function  call "kfree" Daniel Borkmann <daniel@iogearbox.net> - 2015-11-17 18:20 +0100
    Re: net-scm: Delete an unnecessary check before the function call  "kfree" SF Markus Elfring <elfring@users.sourceforge.net> - 2015-11-17 19:10 +0100
      Re: net-scm: Delete an unnecessary check before the function call  "kfree" Daniel Borkmann <daniel@iogearbox.net> - 2015-11-17 19:40 +0100
        Re: net-scm: Macro for special pattern? SF Markus Elfring <elfring@users.sourceforge.net> - 2015-11-18 08:50 +0100
          Re: net-scm: Macro for special pattern? Eric Dumazet <eric.dumazet@gmail.com> - 2015-11-18 13:50 +0100
  Re: [PATCH] net-scm: Delete an unnecessary check before the  function call "kfree" David Miller <davem@davemloft.net> - 2015-11-17 18:20 +0100

csiph-web