]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
session_pack: reset max_record_recv_size when packing
authorDaiki Ueno <dueno@redhat.com>
Wed, 30 Jan 2019 09:21:07 +0000 (10:21 +0100)
committerDaiki Ueno <dueno@redhat.com>
Thu, 14 Feb 2019 12:23:09 +0000 (13:23 +0100)
Signed-off-by: Daiki Ueno <dueno@redhat.com>
lib/session_pack.c

index eec594e38e8e10e6f641d32aadc7645887fe9c6f..da74f45e0c446008d2d7f7c795d1e4fa436226dc 100644 (file)
@@ -923,9 +923,18 @@ pack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
                BUFFER_APPEND_NUM(ps,
                                  session->security_parameters.
                                  max_record_send_size);
-               BUFFER_APPEND_NUM(ps,
-                                 session->security_parameters.
-                                 max_record_recv_size);
+
+               /* reset max_record_recv_size if it was negotiated
+                * using the record_size_limit extension */
+               if (session->internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_NEGOTIATED) {
+                       BUFFER_APPEND_NUM(ps,
+                                         session->security_parameters.
+                                         max_record_send_size);
+               } else {
+                       BUFFER_APPEND_NUM(ps,
+                                         session->security_parameters.
+                                         max_record_recv_size);
+               }
 
                if (session->security_parameters.grp) {
                        BUFFER_APPEND_NUM(ps, session->security_parameters.grp->id);