aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Quartulli2023-03-21 11:28:42 +0100
committerGert Doering2023-03-21 16:12:34 +0100
commit8f503708ed954ff3ae43357bd9f59809581a1381 (patch)
tree768e129dfd322d4ef35e2adb6dc015a1ed8dd34f
parent92827ad84eb3a5b7ca70f3e7f34800d25790b10d (diff)
downloadopenvpn-8f503708ed954ff3ae43357bd9f59809581a1381.zip
openvpn-8f503708ed954ff3ae43357bd9f59809581a1381.tar.gz
multi: don't call DCO APIs if DCO is disabled
The agreement with the DCO submodule is that no API should be called if DCO is actually disabled. For this reason, every invocation must happen only after having checked that dco_enabled() returns true. Add missing checks before invoking dco_get_peer_stats_multi() Reported-by: Lev Stipakov <lev@openvpn.net> Signed-off-by: Antonio Quartulli <a@unstable.cc> Acked-by: Lev Stipakov <lstipakov@gmail.com> Message-Id: <20230321102842.10780-1-a@unstable.cc> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26458.html Signed-off-by: Gert Doering <gert@greenie.muc.de> (cherry picked from commit 891c71db5e26291b19885b9a5ae5c72011b86658)
-rw-r--r--src/openvpn/multi.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c
index 933bf9b..1480bf4 100644
--- a/src/openvpn/multi.c
+++ b/src/openvpn/multi.c
@@ -549,7 +549,10 @@ multi_del_iroutes(struct multi_context *m,
static void
setenv_stats(struct multi_context *m, struct context *c)
{
- dco_get_peer_stats_multi(&m->top.c1.tuntap->dco, m);
+ if (dco_enabled(&m->top.options))
+ {
+ dco_get_peer_stats_multi(&m->top.c1.tuntap->dco, m);
+ }
setenv_counter(c->c2.es, "bytes_received", c->c2.link_read_bytes + c->c2.dco_read_bytes);
setenv_counter(c->c2.es, "bytes_sent", c->c2.link_write_bytes + c->c2.dco_write_bytes);
@@ -849,7 +852,10 @@ multi_print_status(struct multi_context *m, struct status_output *so, const int
status_reset(so);
- dco_get_peer_stats_multi(&m->top.c1.tuntap->dco, m);
+ if (dco_enabled(&m->top.options))
+ {
+ dco_get_peer_stats_multi(&m->top.c1.tuntap->dco, m);
+ }
if (version == 1)
{