2018-02-01 10:26:10

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH] net: bridge: Fix uninitialized error in br_fdb_sync_static()

With gcc-4.1.2.:

net/bridge/br_fdb.c: In function ‘br_fdb_sync_static’:
net/bridge/br_fdb.c:996: warning: ‘err’ may be used uninitialized in this function

Indeed, if the list is empty, err will be uninitialized, and will be
propagated up as the function return value.

Fix this by preinitializing err to zero.

Fixes: eb7935830d00b9e0 ("net: bridge: use rhashtable for fdbs")
Signed-off-by: Geert Uytterhoeven <[email protected]>
---
net/bridge/br_fdb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index dc87fbc9a23b04e6..d9e69e4514beb20d 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -993,7 +993,7 @@ int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[],
int br_fdb_sync_static(struct net_bridge *br, struct net_bridge_port *p)
{
struct net_bridge_fdb_entry *f, *tmp;
- int err;
+ int err = 0;

ASSERT_RTNL();

--
2.7.4



2018-02-01 11:29:43

by Nikolay Aleksandrov

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix uninitialized error in br_fdb_sync_static()

On 01/02/18 12:25, Geert Uytterhoeven wrote:
> With gcc-4.1.2.:
>
> net/bridge/br_fdb.c: In function ‘br_fdb_sync_static’:
> net/bridge/br_fdb.c:996: warning: ‘err’ may be used uninitialized in this function
>
> Indeed, if the list is empty, err will be uninitialized, and will be
> propagated up as the function return value.
>
> Fix this by preinitializing err to zero.
>
> Fixes: eb7935830d00b9e0 ("net: bridge: use rhashtable for fdbs")
> Signed-off-by: Geert Uytterhoeven <[email protected]>
> ---
> net/bridge/br_fdb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
> index dc87fbc9a23b04e6..d9e69e4514beb20d 100644
> --- a/net/bridge/br_fdb.c
> +++ b/net/bridge/br_fdb.c
> @@ -993,7 +993,7 @@ int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[],
> int br_fdb_sync_static(struct net_bridge *br, struct net_bridge_port *p)
> {
> struct net_bridge_fdb_entry *f, *tmp;
> - int err;
> + int err = 0;
>
> ASSERT_RTNL();
>
>

Thanks,
Acked-by: Nikolay Aleksandrov <[email protected]>


2018-02-01 14:48:46

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix uninitialized error in br_fdb_sync_static()

From: Geert Uytterhoeven <[email protected]>
Date: Thu, 1 Feb 2018 11:25:27 +0100

> With gcc-4.1.2.:
>
> net/bridge/br_fdb.c: In function ?br_fdb_sync_static?:
> net/bridge/br_fdb.c:996: warning: ?err? may be used uninitialized in this function
>
> Indeed, if the list is empty, err will be uninitialized, and will be
> propagated up as the function return value.
>
> Fix this by preinitializing err to zero.
>
> Fixes: eb7935830d00b9e0 ("net: bridge: use rhashtable for fdbs")
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Applied, thanks Geert.