two possible bugs

Porsch, Marco marco.porsch at siemens.com
Thu Feb 18 09:04:11 EST 2010


Hi list,

1st) I think in hwmp_route_info_get a PREQ should only be processed, if it has the same SN an better metric (instead of better or equal).

2nd) In hwmp_prep_frame_process: u8 next_hop[ETH_ALEN] is written to, but never used. Should be used to buffer mpath->next_hop->sta.addr for use out of lock.

Files taken from compat-wireless-2010-02-02.

Regards
Marco


--- mesh_hwmp.c~	2010-02-18 14:44:47.000000000 +0100
+++ mesh_hwmp.c	2010-02-18 14:45:32.000000000 +0100
@@ -391,7 +391,7 @@ static u32 hwmp_route_info_get(struct ie
 				if (SN_GT(mpath->sn, orig_sn) ||
 				    (mpath->sn == orig_sn &&
 				     action == MPATH_PREQ &&
-				     new_metric > mpath->metric)) {
+				     new_metric >= mpath->metric)) {
 					process = false;
 					fresh_info = false;
 				}
@@ -611,7 +611,7 @@ static void hwmp_prep_frame_process(stru
 
 	mesh_path_sel_frame_tx(MPATH_PREP, flags, orig_addr,
 		cpu_to_le32(orig_sn), 0, target_addr,
-		cpu_to_le32(target_sn), mpath->next_hop->sta.addr, hopcount,
+		cpu_to_le32(target_sn), next_hop, hopcount,
 		ttl, cpu_to_le32(lifetime), cpu_to_le32(metric),
 		0, sdata);
 	rcu_read_unlock();


More information about the Devel mailing list