From: Antonio Quartulli Date: Tue, 21 Mar 2023 10:28:42 +0000 (+0100) Subject: multi: don't call DCO APIs if DCO is disabled X-Git-Tag: v2.7_alpha1~506 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=891c71db5e26291b19885b9a5ae5c72011b86658;p=thirdparty%2Fopenvpn.git 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 Signed-off-by: Antonio Quartulli Acked-by: Lev Stipakov 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 --- diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c index 933bf9bc3..1480bf477 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) {