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


Groups > linux.kernel > #1397276 > unrolled thread

[PATCH] netfilter: conntrack: remove uninitialized shadow variable

Started byArnd Bergmann <arnd@arndb.de>
First post2016-05-09 21:50 +0200
Last post2016-05-10 07:10 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] netfilter: conntrack: remove uninitialized shadow variable Arnd Bergmann <arnd@arndb.de> - 2016-05-09 21:50 +0200
    Re: [PATCH] netfilter: conntrack: remove uninitialized shadow  variable Pablo Neira Ayuso <pablo@netfilter.org> - 2016-05-09 22:10 +0200
      Re: [PATCH] netfilter: conntrack: remove uninitialized shadow variable Arnd Bergmann <arnd@arndb.de> - 2016-05-09 22:20 +0200
    Re: [PATCH] netfilter: conntrack: remove uninitialized shadow  variable David Miller <davem@davemloft.net> - 2016-05-10 07:10 +0200

#1397276 — [PATCH] netfilter: conntrack: remove uninitialized shadow variable

FromArnd Bergmann <arnd@arndb.de>
Date2016-05-09 21:50 +0200
Subject[PATCH] netfilter: conntrack: remove uninitialized shadow variable
Message-ID<rwZlL-3xy-11@gated-at.bofh.it>
A recent commit introduced an unconditional use of an uninitialized
variable, as reported in this gcc warning:

net/netfilter/nf_conntrack_core.c: In function '__nf_conntrack_confirm':
net/netfilter/nf_conntrack_core.c:632:33: error: 'ctinfo' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   bytes = atomic64_read(&counter[CTINFO2DIR(ctinfo)].bytes);
                                 ^
net/netfilter/nf_conntrack_core.c:628:26: note: 'ctinfo' was declared here
   enum ip_conntrack_info ctinfo;

The problem is that a local variable shadows the function parameter.
This removes the local variable, which looks like what Pablo originally
intended.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 71d8c47fc653 ("netfilter: conntrack: introduce clash resolution on insertion race")
---
 net/netfilter/nf_conntrack_core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index f58a70410c69..157ffa667395 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -625,7 +625,6 @@ static void nf_ct_acct_merge(struct nf_conn *ct, enum ip_conntrack_info ctinfo,
 	acct = nf_conn_acct_find(loser_ct);
 	if (acct) {
 		struct nf_conn_counter *counter = acct->counter;
-		enum ip_conntrack_info ctinfo;
 		unsigned int bytes;
 
 		/* u32 should be fine since we must have seen one packet. */
-- 
2.7.0

[toc] | [next] | [standalone]


#1397317 — Re: [PATCH] netfilter: conntrack: remove uninitialized shadow variable

FromPablo Neira Ayuso <pablo@netfilter.org>
Date2016-05-09 22:10 +0200
SubjectRe: [PATCH] netfilter: conntrack: remove uninitialized shadow variable
Message-ID<rwZF9-42D-31@gated-at.bofh.it>
In reply to#1397276
On Mon, May 09, 2016 at 09:47:23PM +0200, Arnd Bergmann wrote:
> A recent commit introduced an unconditional use of an uninitialized
> variable, as reported in this gcc warning:
> 
> net/netfilter/nf_conntrack_core.c: In function '__nf_conntrack_confirm':
> net/netfilter/nf_conntrack_core.c:632:33: error: 'ctinfo' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>    bytes = atomic64_read(&counter[CTINFO2DIR(ctinfo)].bytes);
>                                  ^
> net/netfilter/nf_conntrack_core.c:628:26: note: 'ctinfo' was declared here
>    enum ip_conntrack_info ctinfo;
> 
> The problem is that a local variable shadows the function parameter.
> This removes the local variable, which looks like what Pablo originally
> intended.

Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>

Sorry for this, I wonder why gcc didn't catch up this here.

@David, you can integrate this into your net-next tree.

Thanks for fixing up this Arnd.

[toc] | [prev] | [next] | [standalone]


#1397340

FromArnd Bergmann <arnd@arndb.de>
Date2016-05-09 22:20 +0200
Message-ID<rwZOP-48t-17@gated-at.bofh.it>
In reply to#1397317
On Monday 09 May 2016 22:01:17 Pablo Neira Ayuso wrote:
> On Mon, May 09, 2016 at 09:47:23PM +0200, Arnd Bergmann wrote:
> > A recent commit introduced an unconditional use of an uninitialized
> > variable, as reported in this gcc warning:
> > 
> > net/netfilter/nf_conntrack_core.c: In function '__nf_conntrack_confirm':
> > net/netfilter/nf_conntrack_core.c:632:33: error: 'ctinfo' may be used uninitialized in this function [-Werror=maybe-uninitialized]
> >    bytes = atomic64_read(&counter[CTINFO2DIR(ctinfo)].bytes);
> >                                  ^
> > net/netfilter/nf_conntrack_core.c:628:26: note: 'ctinfo' was declared here
> >    enum ip_conntrack_info ctinfo;
> > 
> > The problem is that a local variable shadows the function parameter.
> > This removes the local variable, which looks like what Pablo originally
> > intended.
> 
> Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
> 
> Sorry for this, I wonder why gcc didn't catch up this here.
> 
> @David, you can integrate this into your net-next tree.
> 
> Thanks for fixing up this Arnd.

By default, an allmodconfig build will hide these warnings because of
excessive false positives from CONFIG_CC_OPTIMIZE_FOR_SIZE. I've
tried twice to get a patch merged that disables CONFIG_CC_OPTIMIZE_FOR_SIZE
in allmodconfig so we get better warnings, but that patch unfortunately
got ignored.

	Arnd

[toc] | [prev] | [next] | [standalone]


#1397692 — Re: [PATCH] netfilter: conntrack: remove uninitialized shadow variable

FromDavid Miller <davem@davemloft.net>
Date2016-05-10 07:10 +0200
SubjectRe: [PATCH] netfilter: conntrack: remove uninitialized shadow variable
Message-ID<rx85J-3Uw-21@gated-at.bofh.it>
In reply to#1397276
From: Arnd Bergmann <arnd@arndb.de>
Date: Mon,  9 May 2016 21:47:23 +0200

> A recent commit introduced an unconditional use of an uninitialized
> variable, as reported in this gcc warning:
> 
> net/netfilter/nf_conntrack_core.c: In function '__nf_conntrack_confirm':
> net/netfilter/nf_conntrack_core.c:632:33: error: 'ctinfo' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>    bytes = atomic64_read(&counter[CTINFO2DIR(ctinfo)].bytes);
>                                  ^
> net/netfilter/nf_conntrack_core.c:628:26: note: 'ctinfo' was declared here
>    enum ip_conntrack_info ctinfo;
> 
> The problem is that a local variable shadows the function parameter.
> This removes the local variable, which looks like what Pablo originally
> intended.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 71d8c47fc653 ("netfilter: conntrack: introduce clash resolution on insertion race")

Applied.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web