|
From: plaisthos (C. Review) <ge...@op...> - 2025-10-27 22:37:47
|
Attention is currently required from: flichtenheld.
Hello flichtenheld,
I'd like you to do a code review.
Please visit
http://gerrit.openvpn.net/c/openvpn/+/1321?usp=email
to review the following change.
Change subject: Fix logic when pushed cipher triggers tun reopen and ignore more options
......................................................................
Fix logic when pushed cipher triggers tun reopen and ignore more options
The logic was inverted. Only when link-mtu is used, pushing a cipher can
change the MTU and not the other way round. (found by zeropath)
Also ignore a few more options that should not trigger a reopen of tun
in push message.
Reported-By: co...@jo...
Found-By: Zeropath
Change-Id: I76eb584024610a6054a069340adbac988abf686c
---
M src/openvpn/push.c
1 file changed, 14 insertions(+), 4 deletions(-)
git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/21/1321/1
diff --git a/src/openvpn/push.c b/src/openvpn/push.c
index 2c717c7..d7063e6 100644
--- a/src/openvpn/push.c
+++ b/src/openvpn/push.c
@@ -1025,15 +1025,25 @@
char line[OPTION_PARM_SIZE];
while (buf_parse(buf, ',', line, sizeof(line)))
{
- /* peer-id and auth-token might change on restart and this should not trigger reopening tun
+ /* peer-id and auth-token might change on restart and this should not
+ * trigger reopening tun
+ * Also other options that only affect the control channel should
+ * not trigger a reopen of the tun device
*/
- if (strprefix(line, "peer-id ") || strprefix(line, "auth-token ")
- || strprefix(line, "auth-token-user "))
+ if (strprefix(line, "peer-id ")
+ || strprefix(line, "auth-token ")
+ || strprefix(line, "auth-token-user")
+ || strprefix(line, "protocol-flags ")
+ || strprefix(line, "key-derivation ")
+ || strprefix(line, "explicit-exit-notify ")
+ || strprefix(line, "ping ")
+ || strprefix(line, "ping-restart ")
+ || strprefix(line, "ping-timer "))
{
continue;
}
/* tun reopen only needed if cipher change can change tun MTU */
- if (strprefix(line, "cipher ") && !opt->ce.tun_mtu_defined)
+ if (strprefix(line, "cipher ") && opt->ce.tun_mtu_defined)
{
continue;
}
--
To view, visit http://gerrit.openvpn.net/c/openvpn/+/1321?usp=email
To unsubscribe, or for help writing mail filters, visit http://gerrit.openvpn.net/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: I76eb584024610a6054a069340adbac988abf686c
Gerrit-Change-Number: 1321
Gerrit-PatchSet: 1
Gerrit-Owner: plaisthos <arn...@rf...>
Gerrit-Reviewer: flichtenheld <fr...@li...>
Gerrit-CC: openvpn-devel <ope...@li...>
Gerrit-Attention: flichtenheld <fr...@li...>
|