0
0
mirror of https://github.com/OpenVPN/openvpn.git synced 2024-09-20 03:52:28 +02:00

dco: bail out when no peer-specific message is delivered

multi_process_incoming_dco() is currently partly processing
messages that were actually discarded. This results in a bogus
message being printed:

  "Received packet for peer-id unknown to OpenVPN: -1, type 0, reason 2"

Change the flow so that we bail out immediately when we know that no
message was truly delivered by DCO.
Currently this can be verified by checking that the peer_is is greater
than -1.

Signed-off-by: Antonio Quartulli <a@unstable.cc>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: <20230103202330.1835-2-a@unstable.cc>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg25882.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Antonio Quartulli 2023-01-03 21:23:29 +01:00 committed by Gert Doering
parent e9889016fb
commit ea6ee7635f

View File

@ -3270,7 +3270,15 @@ multi_process_incoming_dco(struct multi_context *m)
int peer_id = dco->dco_message_peer_id;
if ((peer_id >= 0) && (peer_id < m->max_clients) && (m->instances[peer_id]))
/* no peer-specific message delivered -> nothing to process.
* bail out right away
*/
if (peer_id < 0)
{
return ret > 0;
}
if ((peer_id < m->max_clients) && (m->instances[peer_id]))
{
mi = m->instances[peer_id];
if (dco->dco_message_type == OVPN_CMD_PACKET)