2024-03-16 09:46:20

by Dan Carpenter

[permalink] [raw]
Subject: [PATCH net] nexthop: fix uninitialized variable in nla_put_nh_group_stats()

The nh_grp_hw_stats_update() function doesn't always set "hw_stats_used"
so it could be used without being initialized. Set it to false.

Fixes: 5072ae00aea4 ("net: nexthop: Expose nexthop group HW stats to user space")
Signed-off-by: Dan Carpenter <[email protected]>
---
net/ipv4/nexthop.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
index 74928a9d1aa4..c25bfdf4e25f 100644
--- a/net/ipv4/nexthop.c
+++ b/net/ipv4/nexthop.c
@@ -824,8 +824,8 @@ static int nla_put_nh_group_stats(struct sk_buff *skb, struct nexthop *nh,
u32 op_flags)
{
struct nh_group *nhg = rtnl_dereference(nh->nh_grp);
+ bool hw_stats_used = false;
struct nlattr *nest;
- bool hw_stats_used;
int err;
int i;

--
2.43.0



2024-03-16 16:29:43

by David Ahern

[permalink] [raw]
Subject: Re: [PATCH net] nexthop: fix uninitialized variable in nla_put_nh_group_stats()

On 3/16/24 3:46 AM, Dan Carpenter wrote:
> The nh_grp_hw_stats_update() function doesn't always set "hw_stats_used"
> so it could be used without being initialized. Set it to false.
>
> Fixes: 5072ae00aea4 ("net: nexthop: Expose nexthop group HW stats to user space")
> Signed-off-by: Dan Carpenter <[email protected]>
> ---
> net/ipv4/nexthop.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
> index 74928a9d1aa4..c25bfdf4e25f 100644
> --- a/net/ipv4/nexthop.c
> +++ b/net/ipv4/nexthop.c
> @@ -824,8 +824,8 @@ static int nla_put_nh_group_stats(struct sk_buff *skb, struct nexthop *nh,
> u32 op_flags)
> {
> struct nh_group *nhg = rtnl_dereference(nh->nh_grp);
> + bool hw_stats_used = false;
> struct nlattr *nest;
> - bool hw_stats_used;
> int err;
> int i;
>

Reviewed-by: David Ahern <[email protected]>

The flag could be moved under
`if (op_flags & NHA_OP_FLAG_DUMP_HW_STATS ...`
as well.

2024-03-17 07:56:47

by Ido Schimmel

[permalink] [raw]
Subject: Re: [PATCH net] nexthop: fix uninitialized variable in nla_put_nh_group_stats()

On Sat, Mar 16, 2024 at 12:46:03PM +0300, Dan Carpenter wrote:
> The nh_grp_hw_stats_update() function doesn't always set "hw_stats_used"
> so it could be used without being initialized. Set it to false.
>
> Fixes: 5072ae00aea4 ("net: nexthop: Expose nexthop group HW stats to user space")
> Signed-off-by: Dan Carpenter <[email protected]>

Reviewed-by: Ido Schimmel <[email protected]>

2024-03-18 08:11:53

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH net] nexthop: fix uninitialized variable in nla_put_nh_group_stats()

On Mon, Mar 18, 2024 at 09:02:54AM +0100, Jiri Pirko wrote:
> Sat, Mar 16, 2024 at 10:46:03AM CET, [email protected] wrote:
> >The nh_grp_hw_stats_update() function doesn't always set "hw_stats_used"
> >so it could be used without being initialized. Set it to false.
> >
> >Fixes: 5072ae00aea4 ("net: nexthop: Expose nexthop group HW stats to user space")
> >Signed-off-by: Dan Carpenter <[email protected]>
> >---
> > net/ipv4/nexthop.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
> >index 74928a9d1aa4..c25bfdf4e25f 100644
> >--- a/net/ipv4/nexthop.c
> >+++ b/net/ipv4/nexthop.c
> >@@ -824,8 +824,8 @@ static int nla_put_nh_group_stats(struct sk_buff *skb, struct nexthop *nh,
> > u32 op_flags)
> > {
> > struct nh_group *nhg = rtnl_dereference(nh->nh_grp);
> >+ bool hw_stats_used = false;
> > struct nlattr *nest;
> >- bool hw_stats_used;
>
>
> Probably better to set this in one place and have:
> if (nexthop_notifiers_is_empty(net)) {
> *hw_stats_used = false;
> return 0;
> }
> in nh_grp_hw_stats_update().
>

Sure. Will do.

regards,
dan carpenter


2024-03-18 15:12:09

by Jiri Pirko

[permalink] [raw]
Subject: Re: [PATCH net] nexthop: fix uninitialized variable in nla_put_nh_group_stats()

Sat, Mar 16, 2024 at 10:46:03AM CET, [email protected] wrote:
>The nh_grp_hw_stats_update() function doesn't always set "hw_stats_used"
>so it could be used without being initialized. Set it to false.
>
>Fixes: 5072ae00aea4 ("net: nexthop: Expose nexthop group HW stats to user space")
>Signed-off-by: Dan Carpenter <[email protected]>
>---
> net/ipv4/nexthop.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
>index 74928a9d1aa4..c25bfdf4e25f 100644
>--- a/net/ipv4/nexthop.c
>+++ b/net/ipv4/nexthop.c
>@@ -824,8 +824,8 @@ static int nla_put_nh_group_stats(struct sk_buff *skb, struct nexthop *nh,
> u32 op_flags)
> {
> struct nh_group *nhg = rtnl_dereference(nh->nh_grp);
>+ bool hw_stats_used = false;
> struct nlattr *nest;
>- bool hw_stats_used;


Probably better to set this in one place and have:
if (nexthop_notifiers_is_empty(net)) {
*hw_stats_used = false;
return 0;
}
in nh_grp_hw_stats_update().




> int err;
> int i;
>
>--
>2.43.0
>
>