[PATCH] QUIC openssl compat mode error handling

Vladimir Homutov vl at inspert.ru
Fri Sep 22 12:44:08 UTC 2023


# HG changeset patch
# User Vladimir Khomutov <vl at inspert.ru>
# Date 1695386443 -10800
#      Fri Sep 22 15:40:43 2023 +0300
# Node ID 974ba23e68909ba708616410aa77074213d4d1e5
# Parent  5741eddf82e826766cd0f5ec7c6fe383145ca581
QUIC: handle add_handhshake_data() callback errors in compat.

The error may be triggered by incorrect transport parameter sent by client.
The expected behaviour in this case is to close connection complaining
about incorrect parameter.  Currently the connection just times out.

diff --git a/src/event/quic/ngx_event_quic_openssl_compat.c b/src/event/quic/ngx_event_quic_openssl_compat.c
--- a/src/event/quic/ngx_event_quic_openssl_compat.c
+++ b/src/event/quic/ngx_event_quic_openssl_compat.c
@@ -408,7 +408,10 @@ ngx_quic_compat_message_callback(int wri
                        "quic compat tx %s len:%uz ",
                        ngx_quic_level_name(level), len);

-        (void) com->method->add_handshake_data(ssl, level, buf, len);
+        if (com->method->add_handshake_data(ssl, level, buf, len) != 1) {
+            ngx_post_event(&qc->close, &ngx_posted_events);
+            return;
+        }

         break;


More information about the nginx-devel mailing list