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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 22 Mar 2019 08:22:09 -0700 From: Nathan Chancellor <natechancellor@...il.com> To: Arnd Bergmann <arnd@...db.de> Cc: David Howells <dhowells@...hat.com>, "David S. Miller" <davem@...emloft.net>, clang-built-linux@...glegroups.com, Nick Desaulniers <ndesaulniers@...gle.com>, YueHaibing <yuehaibing@...wei.com>, linux-afs@...ts.infradead.org, netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH] rxrpc: avoid clang -Wuninitialized warning On Fri, Mar 22, 2019 at 03:18:43PM +0100, Arnd Bergmann wrote: > clang produces a false-positive warning as it fails to notice > that "lost = true" implies that "ret" is initialized: > > net/rxrpc/output.c:402:6: error: variable 'ret' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized] > if (lost) > ^~~~ > net/rxrpc/output.c:437:6: note: uninitialized use occurs here > if (ret >= 0) { > ^~~ > net/rxrpc/output.c:402:2: note: remove the 'if' if its condition is always false > if (lost) > ^~~~~~~~~ > net/rxrpc/output.c:339:9: note: initialize the variable 'ret' to silence this warning > int ret, opt; > ^ > = 0 > > Rearrange the code to make that more obvious and avoid the warning. > > Signed-off-by: Arnd Bergmann <arnd@...db.de> Reviewed-by: Nathan Chancellor <natechancellor@...il.com> > --- > net/rxrpc/output.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/net/rxrpc/output.c b/net/rxrpc/output.c > index 736aa9281100..004c762c2e8d 100644 > --- a/net/rxrpc/output.c > +++ b/net/rxrpc/output.c > @@ -335,7 +335,6 @@ int rxrpc_send_data_packet(struct rxrpc_call *call, struct sk_buff *skb, > struct kvec iov[2]; > rxrpc_serial_t serial; > size_t len; > - bool lost = false; > int ret, opt; > > _enter(",{%d}", skb->len); > @@ -393,14 +392,14 @@ int rxrpc_send_data_packet(struct rxrpc_call *call, struct sk_buff *skb, > static int lose; > if ((lose++ & 7) == 7) { > ret = 0; > - lost = true; > + trace_rxrpc_tx_data(call, sp->hdr.seq, serial, > + whdr.flags, retrans, true); > + goto done; > } > } > > - trace_rxrpc_tx_data(call, sp->hdr.seq, serial, whdr.flags, > - retrans, lost); > - if (lost) > - goto done; > + trace_rxrpc_tx_data(call, sp->hdr.seq, serial, whdr.flags, retrans, > + false); > > /* send the packet with the don't fragment bit set if we currently > * think it's small enough */ > -- > 2.20.0 >
Powered by blists - more mailing lists