mac80211: fix an unaligned access in the mesh hash table function
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -0,0 +1,21 @@ | |||||||
|  | From: Felix Fietkau <nbd@nbd.name> | ||||||
|  | Date: Wed, 13 Mar 2019 18:52:56 +0100 | ||||||
|  | Subject: [PATCH] mac80211: fix unaligned access in mesh table hash function | ||||||
|  |  | ||||||
|  | The pointer to the last four bytes of the address is not guaranteed to be | ||||||
|  | aligned, so we need to use __get_unaligned_cpu32 here | ||||||
|  |  | ||||||
|  | Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | --- a/net/mac80211/mesh_pathtbl.c | ||||||
|  | +++ b/net/mac80211/mesh_pathtbl.c | ||||||
|  | @@ -23,7 +23,7 @@ static void mesh_path_free_rcu(struct me | ||||||
|  |  static u32 mesh_table_hash(const void *addr, u32 len, u32 seed) | ||||||
|  |  { | ||||||
|  |  	/* Use last four bytes of hw addr as hash index */ | ||||||
|  | -	return jhash_1word(*(u32 *)(addr+2), seed); | ||||||
|  | +	return jhash_1word(__get_unaligned_cpu32(addr+2), seed); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static const struct rhashtable_params mesh_rht_params = { | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau