]> www.infradead.org Git - users/dwmw2/openconnect.git/commitdiff
Stop accepting DTLS packets when the queue is full
authorDavid Woodhouse <dwmw2@infradead.org>
Thu, 1 Jul 2021 20:45:18 +0000 (21:45 +0100)
committerDavid Woodhouse <dwmw2@infradead.org>
Thu, 1 Jul 2021 20:45:18 +0000 (21:45 +0100)
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
dtls.c

diff --git a/dtls.c b/dtls.c
index ca8ad551090855f227ff14168920e888e883b5b4..cdb578ed9cdde922b287d11b45b1202dbc277efe 100644 (file)
--- a/dtls.c
+++ b/dtls.c
@@ -273,6 +273,10 @@ int dtls_mainloop(struct openconnect_info *vpninfo, int *timeout, int readable)
                int len = MAX(16384, vpninfo->ip_info.mtu);
                unsigned char *buf;
 
+               if (vpninfo->incoming_queue.count >= vpninfo->max_qlen) {
+                       work_done = 1;
+                       break;
+               }
                if (!vpninfo->dtls_pkt) {
                        vpninfo->dtls_pkt = alloc_pkt(vpninfo, len);
                        if (!vpninfo->dtls_pkt) {