diff options
Diffstat (limited to 'drivers/net/wireguard/selftest/allowedips.c')
| -rw-r--r-- | drivers/net/wireguard/selftest/allowedips.c | 16 | 
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/net/wireguard/selftest/allowedips.c b/drivers/net/wireguard/selftest/allowedips.c index 78ebe2892a78..3d1f64ff2e12 100644 --- a/drivers/net/wireguard/selftest/allowedips.c +++ b/drivers/net/wireguard/selftest/allowedips.c @@ -593,16 +593,20 @@ bool __init wg_allowedips_selftest(void)  	wg_allowedips_remove_by_peer(&t, a, &mutex);  	test_negative(4, a, 192, 168, 0, 1); -	/* These will hit the WARN_ON(len >= MAX_ALLOWEDIPS_BITS) in free_node +	/* These will hit the WARN_ON(len >= MAX_ALLOWEDIPS_DEPTH) in free_node  	 * if something goes wrong.  	 */ -	for (i = 0; i < MAX_ALLOWEDIPS_BITS; ++i) { -		part = cpu_to_be64(~(1LLU << (i % 64))); -		memset(&ip, 0xff, 16); -		memcpy((u8 *)&ip + (i < 64) * 8, &part, 8); +	for (i = 0; i < 64; ++i) { +		part = cpu_to_be64(~0LLU << i); +		memset(&ip, 0xff, 8); +		memcpy((u8 *)&ip + 8, &part, 8); +		wg_allowedips_insert_v6(&t, &ip, 128, a, &mutex); +		memcpy(&ip, &part, 8); +		memset((u8 *)&ip + 8, 0, 8);  		wg_allowedips_insert_v6(&t, &ip, 128, a, &mutex);  	} - +	memset(&ip, 0, 16); +	wg_allowedips_insert_v6(&t, &ip, 128, a, &mutex);  	wg_allowedips_free(&t, &mutex);  	wg_allowedips_init(&t);  | 
