Patch "net: nexthop: Initialize all fields in dumped nexthops" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: nexthop: Initialize all fields in dumped nexthops

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-nexthop-initialize-all-fields-in-dumped-nexthops.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 15ef15ca2623bf904344adf41122ed85eca52332
Author: Petr Machata <petrm@xxxxxxxxxx>
Date:   Tue Jul 23 18:04:16 2024 +0200

    net: nexthop: Initialize all fields in dumped nexthops
    
    [ Upstream commit 6d745cd0e9720282cd291d36b9db528aea18add2 ]
    
    struct nexthop_grp contains two reserved fields that are not initialized by
    nla_put_nh_group(), and carry garbage. This can be observed e.g. with
    strace (edited for clarity):
    
        # ip nexthop add id 1 dev lo
        # ip nexthop add id 101 group 1
        # strace -e recvmsg ip nexthop get id 101
        ...
        recvmsg(... [{nla_len=12, nla_type=NHA_GROUP},
                     [{id=1, weight=0, resvd1=0x69, resvd2=0x67}]] ...) = 52
    
    The fields are reserved and therefore not currently used. But as they are, they
    leak kernel memory, and the fact they are not just zero complicates repurposing
    of the fields for new ends. Initialize the full structure.
    
    Fixes: 430a049190de ("nexthop: Add support for nexthop groups")
    Signed-off-by: Petr Machata <petrm@xxxxxxxxxx>
    Reviewed-by: Ido Schimmel <idosch@xxxxxxxxxx>
    Reviewed-by: Eric Dumazet <edumazet@xxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/ipv4/nexthop.c b/net/ipv4/nexthop.c
index 535856b0f0edc..6b9787ee86017 100644
--- a/net/ipv4/nexthop.c
+++ b/net/ipv4/nexthop.c
@@ -888,9 +888,10 @@ static int nla_put_nh_group(struct sk_buff *skb, struct nexthop *nh,
 
 	p = nla_data(nla);
 	for (i = 0; i < nhg->num_nh; ++i) {
-		p->id = nhg->nh_entries[i].nh->id;
-		p->weight = nhg->nh_entries[i].weight - 1;
-		p += 1;
+		*p++ = (struct nexthop_grp) {
+			.id = nhg->nh_entries[i].nh->id,
+			.weight = nhg->nh_entries[i].weight - 1,
+		};
 	}
 
 	if (nhg->resilient && nla_put_nh_group_res(skb, nhg))




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux