>-----Original Message----- >From: Intel-wired-lan <[email protected]> On Behalf Of NeKon69 >Sent: Saturday, June 13, 2026 12:15 PM >To: Nguyen, Anthony L <[email protected]>; Kitszel, Przemyslaw ><[email protected]> >Cc: [email protected]; [email protected]; [email protected]; >[email protected]; [email protected]; [email protected]; >[email protected]; [email protected]; >[email protected]; NeKon69 <[email protected]> >Subject: [Intel-wired-lan] [PATCH net] ice: Fix use-after-scope in >ice_sched_add_nodes_to_layer() > >Commit 7fb09a737536 ("ice: Modify recursive way of adding nodes") changed >ice_sched_add_nodes_to_layer() from recursive control flow to an iterative >loop. > >Inside the loop, first_teid_ptr may be set to the address of a block-local >variable: > > u32 temp; > ... > if (num_added) > first_teid_ptr = &temp; > >On the next loop iteration, first_teid_ptr may be passed to >ice_sched_add_nodes_to_hw_layer(), after temp from the previous iteration has >gone out of scope. > >Move temp outside the loop so the pointer remains valid for the lifetime of >ice_sched_add_nodes_to_layer(). > >This was found by Clang with LifetimeSafety enabled while testing C language >support on a Linux allmodconfig build. > >Fixes: 7fb09a737536 ("ice: Modify recursive way of adding nodes") >Link: https://github.com/llvm/llvm-project/pull/203270 >Signed-off-by: NeKon69 <[email protected]> >--- > drivers/net/ethernet/intel/ice/ice_sched.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/drivers/net/ethernet/intel/ice/ice_sched.c >b/drivers/net/ethernet/intel/ice/ice_sched.c >index fff0c1afdb41..089ad3967be5 100644 >--- a/drivers/net/ethernet/intel/ice/ice_sched.c >+++ b/drivers/net/ethernet/intel/ice/ice_sched.c >@@ -1074,11 +1074,11 @@ ice_sched_add_nodes_to_layer(struct ice_port_info *pi, > u32 *first_teid_ptr = first_node_teid; > u16 new_num_nodes = num_nodes; > int status = 0; >+ u32 temp; > > *num_nodes_added = 0; > while (*num_nodes_added < num_nodes) { > u16 max_child_nodes, num_added = 0; >- u32 temp; > > status = ice_sched_add_nodes_to_hw_layer(pi, tc_node, parent, > layer, new_num_nodes, >-- >2.54.0 >
Reviewed-by: Piotr Kwapulinski <[email protected]>
