mirror-linux/tools/testing/selftests
Jason A. Donenfeld 3173bfdf89 wireguard: netlink: send staged packets when setting initial private key
commit f58d0a9b4c upstream.

Packets bound for peers can queue up prior to the device private key
being set. For example, if persistent keepalive is set, a packet is
queued up to be sent as soon as the device comes up. However, if the
private key hasn't been set yet, the handshake message never sends, and
no timer is armed to retry, since that would be pointless.

But, if a user later sets a private key, the expectation is that those
queued packets, such as a persistent keepalive, are actually sent. So
adjust the configuration logic to account for this edge case, and add a
test case to make sure this works.

Maxim noticed this with a wg-quick(8) config to the tune of:

    [Interface]
    PostUp = wg set %i private-key somefile

    [Peer]
    PublicKey = ...
    Endpoint = ...
    PersistentKeepalive = 25

Here, the private key gets set after the device comes up using a PostUp
script, triggering the bug.

Fixes: e7096c131e ("net: WireGuard secure network tunnel")
Cc: stable@vger.kernel.org
Reported-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Tested-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Link: https://lore.kernel.org/wireguard/87fs7xtqrv.fsf@gmail.com/
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-07-19 16:22:17 +02:00
..
alsa
amd-pstate cpufreq: amd-pstate: Add explanation for X86_AMD_PSTATE_UT 2022-10-05 11:05:18 -06:00
arm64 selftests: arm64: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
bpf selftests/bpf: Fix check_mtu using wrong variable type 2023-07-19 16:21:07 +02:00
breakpoints
capabilities
cgroup selftests: cgroup: fix unexpected failure on test_memcg_low 2023-07-19 16:21:08 +02:00
clone3 selftests: clone3: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
core selftests: core: Fix incorrect kernel headers search path 2023-03-10 09:34:15 +01:00
cpu-hotplug selftests/cpu-hotplug: Add log info when test success 2022-10-05 11:05:18 -06:00
cpufreq
damon selftest/damon: add a test for duplicate context dirs creation 2022-10-03 14:03:06 -07:00
dma
dmabuf-heaps selftests: dmabuf-heaps: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
drivers selftests: drivers: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
efivarfs selftests/efivarfs: Add checking of the test return value 2022-12-31 13:31:56 +01:00
exec
filesystems selftests: filesystems: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
firmware
fpu
ftrace selftests/ftrace: Fix eprobe syntax test case to check filter support 2023-03-10 09:34:15 +01:00
futex selftests: futex: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
gpio selftests: gpio: gpio-sim: Fix BUG: test FAILED due to recent change 2023-06-21 16:00:52 +02:00
ia64
intel_pstate selftests/intel_pstate: fix build for ARCH=x86_64 2022-10-18 14:13:19 -06:00
ipc selftests: ipc: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
ir
kcmp selftests: kcmp: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
kexec selftests/kexec: fix build for ARCH=x86_64 2022-10-18 14:13:25 -06:00
kmod
kselftest
kvm x86/hyperv: KVM: Rename "hv_enlightenments" to "hv_vmcb_enlightenments" 2023-04-20 12:35:12 +02:00
landlock selftests/landlock: Test ptrace as much as possible with Yama 2023-03-10 09:34:10 +01:00
lib
livepatch Merge branch 'for-6.1/sysfs-patched-object' into for-linus 2022-10-05 13:00:03 +02:00
lkdtm lkdtm: Update tests for memcpy() run-time warnings 2022-09-07 16:37:27 -07:00
locking
media_tests selftests: media_tests: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
membarrier selftests: membarrier: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
memfd selftests/memfd: Fix unknown type name build failure 2023-05-30 14:03:19 +01:00
memory-hotplug selftests/memory-hotplug: Remove the redundant warning information 2022-10-18 14:21:18 -06:00
mincore
mount
mount_setattr selftests/mount_setattr: fix redefine struct mount_attr build error 2023-06-28 11:12:21 +02:00
move_mount_set_group selftests: move_mount_set_group: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
mqueue
nci
net selftests: rtnetlink: remove netdevsim device after ipsec offload test 2023-07-19 16:21:12 +02:00
netfilter selftests: netfilter: fix libmnl pkg-config usage 2023-05-17 11:53:35 +02:00
nolibc selftests/nolibc: Avoid generated files being committed 2022-08-31 05:17:45 -07:00
nsfs
ntb
openat2
perf_events selftests: perf_events: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
pid_namespace selftests: pid_namespace: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
pidfd selftests: pidfd: Fix incorrect kernel headers search path 2023-03-10 09:34:16 +01:00
powerpc selftests/powerpc/pmu: Fix sample field check in the mmcra_thresh_marked_sample_test 2023-05-11 23:03:31 +09:00
prctl
proc proc: fix PIE proc-empty-vm, proc-pid-vm tests 2023-01-24 07:24:33 +01:00
pstore
ptp selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET 2023-06-21 16:01:02 +02:00
ptrace
rcutorture rcutorture: Correct name of use_softirq module parameter 2023-07-19 16:21:01 +02:00
resctrl selftests/resctrl: Check for return value after write_schemata() 2023-05-11 23:03:06 +09:00
rlimits
rseq selftests: rseq: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
rtc
safesetid
sched selftests: sched: Fix incorrect kernel headers search path 2023-03-10 09:34:15 +01:00
seccomp selftests: seccomp: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
sgx
sigaltstack selftests: sigaltstack: fix -Wuninitialized 2023-04-26 14:28:35 +02:00
size
sparc64
splice
static_keys
sync selftests: sync: Fix incorrect kernel headers search path 2023-03-10 09:34:17 +01:00
syscall_user_dispatch
sysctl
tc-testing selftests/tc-testing: Fix SFB db test 2023-06-21 16:01:01 +02:00
timens Revert "selftests/timens: add a test for vfork+exit" 2022-09-13 10:38:43 -07:00
timers
tmpfs
tpm2 selftest: tpm2: Add Client.__del__() to close /dev/tpm* handle 2022-10-05 00:25:56 +03:00
uevent
user
user_events tracing/user_events: Ensure write index cannot be negative 2023-05-11 23:03:32 +09:00
vDSO kselftest: vDSO: Fix accumulation of uninitialized ret when CLOCK_REALTIME is undefined 2023-07-19 16:21:02 +02:00
vm selftests: vm: Fix incorrect kernel headers search path 2023-03-10 09:34:18 +01:00
watchdog
wireguard wireguard: netlink: send staged packets when setting initial private key 2023-07-19 16:22:17 +02:00
x86 selftests/x86/amx: Add a ptrace test 2023-03-30 12:49:21 +02:00
zram
.gitignore
Makefile selftests: use printf instead of echo -ne 2023-03-10 09:33:27 +01:00
gen_kselftest_tar.sh
kselftest.h
kselftest_deps.sh
kselftest_harness.h
kselftest_install.sh
kselftest_module.h
lib.mk selftests: fix LLVM build for i386 and x86_64 2023-03-22 13:33:44 +01:00
run_kselftest.sh