|
@@ -2262,6 +2262,7 @@ static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
|
|
|
{
|
|
|
struct batadv_tvlv_tt_vlan_data *tt_vlan_tmp;
|
|
|
struct batadv_orig_node_vlan *vlan;
|
|
|
+ uint32_t crc;
|
|
|
int i;
|
|
|
|
|
|
/* check if each received CRC matches the locally stored one */
|
|
@@ -2281,7 +2282,10 @@ static bool batadv_tt_global_check_crc(struct batadv_orig_node *orig_node,
|
|
|
if (!vlan)
|
|
|
return false;
|
|
|
|
|
|
- if (vlan->tt.crc != ntohl(tt_vlan_tmp->crc))
|
|
|
+ crc = vlan->tt.crc;
|
|
|
+ batadv_orig_node_vlan_free_ref(vlan);
|
|
|
+
|
|
|
+ if (crc != ntohl(tt_vlan_tmp->crc))
|
|
|
return false;
|
|
|
}
|
|
|
|