| Message ID | 8eca0229a26d5e6db8e095b2f1693b6fc03fcfb1.1787919082.git.ralf@mandelbit.com |
|---|---|
| State | New |
| Headers |
Return-Path: <openvpn-devel-bounces@lists.sourceforge.net>
Delivered-To: patchwork@openvpn.net
Received: by 2002:a05:7000:2a5c:b0:87d:ab56:3700 with SMTP id
l28csp1142125maz;
Fri, 28 Aug 2026 06:01:17 -0700 (PDT)
X-Forwarded-Encrypted: i=2;
AHgh+Rrvt8to2nqTFHawLCnUteVkaTo/4pzcpzsbE4GU21MGFmI+1Kkp+FHZ/cyjh7pAipSfvA8A/VQnbkU=@openvpn.net
X-Received: by 2002:a05:6870:8254:b0:455:c1d1:9cc0 with SMTP id
586e51a60fabf-46837f1f5a3mr7611615fac.19.1787922077254;
Fri, 28 Aug 2026 06:01:17 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1787922077; cv=none;
d=google.com; s=arc-20260327;
b=CnEXGl8g0FJxzbQ4tBfmfoKdAZ4vdTb61dkD8jD+5RKWltRf7kGwrZO1Bj+9a1xvpC
ts8rax61l9lt0ddl8wWmfKJkBBOYtcRF/PvkzxMB7gLHl5RY4Vkrj5J8XNtv+yBA+5YR
kqPvWl2smNVCOo1e4F735wQ02hRtjeHaDrQj7h69bo8DlIa5zBpbpC96YXlw1QsHUSuE
08uemjwo/Z7ikDkVb0BNIMQcCP8Hb2Xo9/PSOwB0jTQqPc2jcJdZD+EYnQeS64eguB2K
5xNaS9yq5SqJz9zs2RFlHzFJkC68Zv9EadAswhHJFujm0uCXq31iM7Ze51tBSgAjSroh
QFyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20260327;
h=errors-to:content-transfer-encoding:list-subscribe:list-help
:list-post:list-archive:list-unsubscribe:list-id:precedence:subject
:mime-version:references:in-reply-to:message-id:date:to:from
:dkim-signature:dkim-signature:dkim-signature:dkim-signature;
bh=mAAcVpxSwxMD+4/hmKw2PJp7VFrEyA/6Q54mH2jqwjw=;
fh=4NbAC/LsuMLI0S0hprUlLSLCiHwg6SCAifhH718Jh0Q=;
b=cZRmlvPcjsSQViJyKGe110naWSxnrg85mU8jF3z+v91QhOhV57iEIk2QR7sO3PCxvn
B6PeKs9fwJhEkkTDlZTs3CilL74pSWAbGZchTZC1sHnWBsvn6kWaaXMbai6VSGzf/JjJ
PxYwni30kWIWa+WXM8o+cmAW7Iayy8bichCu7NrY07tFBzNcEX4Ss3KZYs1p2aPzHmrW
cgE5QPHifVt2vaBjOrfcqNIaIY4Y4CMG+34LcFU5NEGRbzteI8ZGMh12eo59s9yQ6RE3
2Ct8Xsww0GHzoHnq943KJGzYLxNCMhE0CwhGCuSF0qZw1HxzDv4Veso1HsiJ/yMNpZqT
Kuxw==;
dara=google.com
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass header.i=@lists.sourceforge.net header.s=beta
header.b=SZwKEbvA;
dkim=neutral (body hash did not verify) header.i=@sourceforge.net
header.s=x header.b=PeNtzGIC;
dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x
header.b=Ryg92vpH;
dkim=neutral (body hash did not verify) header.i=@mandelbit.com
header.s=MBO0001 header.b=uJIDZg2H;
spf=pass (google.com: domain of
openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as
permitted sender) smtp.mailfrom=openvpn-devel-bounces@lists.sourceforge.net
Received: from lists.sourceforge.net (lists.sourceforge.net. [216.105.38.7])
by mx.google.com with ESMTPS id
586e51a60fabf-468a61612a3si1728406fac.269.2026.08.28.06.01.16
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Fri, 28 Aug 2026 06:01:16 -0700 (PDT)
Received-SPF: pass (google.com: domain of
openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as
permitted sender) client-ip=216.105.38.7;
Authentication-Results: mx.google.com;
dkim=pass header.i=@lists.sourceforge.net header.s=beta
header.b=SZwKEbvA;
dkim=neutral (body hash did not verify) header.i=@sourceforge.net
header.s=x header.b=PeNtzGIC;
dkim=neutral (body hash did not verify) header.i=@sf.net header.s=x
header.b=Ryg92vpH;
dkim=neutral (body hash did not verify) header.i=@mandelbit.com
header.s=MBO0001 header.b=uJIDZg2H;
spf=pass (google.com: domain of
openvpn-devel-bounces@lists.sourceforge.net designates 216.105.38.7 as
permitted sender) smtp.mailfrom=openvpn-devel-bounces@lists.sourceforge.net
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=lists.sourceforge.net; s=beta; h=Content-Transfer-Encoding:Content-Type:
List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:
Subject:MIME-Version:References:In-Reply-To:Message-ID:Date:To:From:Sender:
Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From:
Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
bh=mAAcVpxSwxMD+4/hmKw2PJp7VFrEyA/6Q54mH2jqwjw=; b=SZwKEbvAZJBmvyQojujbH4j4vb
ljKWiXG5BPE1tZJyhY22eL1uvYVj2+c0/yVyjLHMKM9pE8LL0aK10QBh3AJY5w5Hz2zFksACaJAa0
aL2Y+EemYwkXnwGzCtjwcSdsTylgKTRUdxq/hlRJ0ZycKwdVk87tkjna5z3BTlt5dZxQ=;
Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com)
by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.95)
(envelope-from <openvpn-devel-bounces@lists.sourceforge.net>)
id 1wzwCm-00017a-9t;
Fri, 28 Aug 2026 13:01:12 +0000
Received: from [172.30.29.66] (helo=mx.sourceforge.net)
by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95)
(envelope-from <ralf@mandelbit.com>) id 1wzwCN-00016r-AU
for openvpn-devel@lists.sourceforge.net;
Fri, 28 Aug 2026 13:00:48 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=sourceforge.net; s=x; h=Content-Transfer-Encoding:MIME-Version:References:
In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:
Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
List-Subscribe:List-Post:List-Owner:List-Archive;
bh=PKHz1IxdpECY3W1lGOkcRp7xmXjrQnWLzGIFgQJBM5k=; b=PeNtzGIC5kHLSzhwkeqWzYiSdk
bJ+eBC3J1En/thMamOS8Vn58RnMMpGgDhuMnA4Eoks7+oWjf3RbneJW0jz6Dogt9kOOVxjktF0H4n
ZrVHU9713Vv1A4sHJcCTUg9eE0n4rOBbMjGuzLA+mlloQDWLg2vJQL+gyntkZucGJ5A8=;
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x
;
h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:
Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID:
Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
List-Post:List-Owner:List-Archive;
bh=PKHz1IxdpECY3W1lGOkcRp7xmXjrQnWLzGIFgQJBM5k=; b=Ryg92vpHsWN8fGhJZnx2sAIxvv
bjdP6lmMCwn82R2rfmF/rXbrsJK5F2MbYkdQ941PP+iMgeVLBv2oNxJjjfG3TyUSGbWyEff/Vitc5
NnkdHhEABGne5NGM5yF7UzSdJrM/Xb7V4WKcVd4Ymd4xLL8PVrjFnjsmn3fjnCQvmBSM=;
Received: from mout-b-203.mailbox.org ([195.10.208.52])
by sfi-mx-2.v28.lw.sourceforge.com with esmtps
(TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95)
id 1wzwCA-0005bC-79 for openvpn-devel@lists.sourceforge.net;
Fri, 28 Aug 2026 13:00:38 +0000
Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest
SHA256)
(No client certificate requested)
by mout-b-203.mailbox.org (Postfix) with ESMTPS id 4hWdls3pwJzLlqM;
Fri, 28 Aug 2026 15:00:25 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandelbit.com;
s=MBO0001; t=1787922025;
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
to:to:cc:cc:mime-version:mime-version:
content-transfer-encoding:content-transfer-encoding:
in-reply-to:in-reply-to:references:references;
bh=PKHz1IxdpECY3W1lGOkcRp7xmXjrQnWLzGIFgQJBM5k=;
b=uJIDZg2HlM/YPVF3+cCDPiI0Ig5r5+0T0TNyIchkHNVH3MmqOTNeElTFZIjxx7PFuBYjQI
+mbh81ajsLdBmIpobAog8D46/5wU1VOmTsGuxplP9Qy/o1micTCN4ogTmXNjeO1ZFNdNS7
AcZ2ulwq5YtKAw/zHpNLpdI372WW2573x/IBzsUV+vBsJqIvn8Rf1tb3vmw97x2Gy2zg/Q
2ooiMFYxw+HP24pVeWtPWMFG7QSmBtqXFXKVopW4WQh9lX5XpbxylI/Xmb5s/sHNVjx40R
7yxW8wIBCo0IqJXLpaJGa9d+r69p2SVb1dEJkk2QhFhdRaOflIG+bzHf8rCuUg==
From: Ralf Lici <ralf@mandelbit.com>
To: openvpn-devel@lists.sourceforge.net
Date: Fri, 28 Aug 2026 15:00:06 +0200
Message-ID:
<8eca0229a26d5e6db8e095b2f1693b6fc03fcfb1.1787919082.git.ralf@mandelbit.com>
In-Reply-To: <cover.1787919082.git.ralf@mandelbit.com>
References: <cover.1787919082.git.ralf@mandelbit.com>
MIME-Version: 1.0
X-Spam-Score: -0.2 (/)
X-Spam-Report: Spam detection software,
running on the system "sfi-spamd-2.hosts.colo.sdot.me",
has NOT identified this incoming email as spam. The original
message has been attached to this so you can view it or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: ovpn_peer_hash_vpn_ip updates the per-peer VPN address hash
entries after userspace changes a peer VPN address. The current code removes
an old hash entry only when the new address for that family is [...]
Content analysis details: (-0.2 points, 5.0 required)
pts rule name description
---- ----------------------
--------------------------------------------------
-0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from
envelope-from domain
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's
domain
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
not necessarily valid
X-Headers-End: 1wzwCA-0005bC-79
Subject: [Openvpn-devel] [PATCH ovpn net v2 1/5] ovpn: always unhash old VPN
addresses before rehashing
X-BeenThere: openvpn-devel@lists.sourceforge.net
X-Mailman-Version: 2.1.21
Precedence: list
List-Id: <openvpn-devel.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/options/openvpn-devel>,
<mailto:openvpn-devel-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive:
<http://sourceforge.net/mailarchive/forum.php?forum_name=openvpn-devel>
List-Post: <mailto:openvpn-devel@lists.sourceforge.net>
List-Help: <mailto:openvpn-devel-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/openvpn-devel>,
<mailto:openvpn-devel-request@lists.sourceforge.net?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: openvpn-devel-bounces@lists.sourceforge.net
X-getmail-retrieved-from-mailbox: Inbox
X-GMAIL-THRID: 1874772179659412179
X-GMAIL-MSGID: 1874772179659412179
|
| Series |
ovpn: validate peer VPN addresses
|
|
Commit Message
Ralf Lici
Aug. 28, 2026, 1 p.m. UTC
ovpn_peer_hash_vpn_ip updates the per-peer VPN address hash entries
after userspace changes a peer VPN address. The current code removes an
old hash entry only when the new address for that family is not the
unspecified address.
When an address is cleared to 0.0.0.0 or ::, its hash node therefore
remains linked in the bucket selected by the old address. The address
comparison performed during lookup prevents the old address from
matching, but the table retains a stale entry until the peer is removed
or another address is configured for that family.
Always remove both old VPN address hash entries before conditionally
adding the currently configured addresses back. This ensures that a
cleared address leaves its hash node unhashed.
Fixes: 1d36a36f6d53 ("ovpn: implement peer add/get/dump/delete via netlink")
Signed-off-by: Ralf Lici <ralf@mandelbit.com>
---
No changes since v1 https://lore.kernel.org/openvpn-devel/e15d597b1c6d0e98727f482113b51f86a8510c50.1785338921.git.ralf@mandelbit.com/
drivers/net/ovpn/peer.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ovpn/peer.c b/drivers/net/ovpn/peer.c index c95656ca7c35..68a2b05689ef 100644 --- a/drivers/net/ovpn/peer.c +++ b/drivers/net/ovpn/peer.c @@ -990,10 +990,11 @@ void ovpn_peer_hash_vpn_ip(struct ovpn_peer *peer) if (hlist_unhashed(&peer->hash_entry_id)) return; - if (peer->vpn_addrs.ipv4.s_addr != htonl(INADDR_ANY)) { - /* remove potential old hashing */ - hlist_nulls_del_init_rcu(&peer->hash_entry_addr4); + /* remove potential old hashing */ + hlist_nulls_del_init_rcu(&peer->hash_entry_addr4); + hlist_nulls_del_init_rcu(&peer->hash_entry_addr6); + if (peer->vpn_addrs.ipv4.s_addr != htonl(INADDR_ANY)) { nhead = ovpn_get_hash_head(peer->ovpn->peers->by_vpn_addr4, &peer->vpn_addrs.ipv4, sizeof(peer->vpn_addrs.ipv4)); @@ -1001,9 +1002,6 @@ void ovpn_peer_hash_vpn_ip(struct ovpn_peer *peer) } if (!ipv6_addr_any(&peer->vpn_addrs.ipv6)) { - /* remove potential old hashing */ - hlist_nulls_del_init_rcu(&peer->hash_entry_addr6); - nhead = ovpn_get_hash_head(peer->ovpn->peers->by_vpn_addr6, &peer->vpn_addrs.ipv6, sizeof(peer->vpn_addrs.ipv6));