diff options
Diffstat (limited to 'lib/session_pack.c')
-rw-r--r-- | lib/session_pack.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/session_pack.c b/lib/session_pack.c index eec594e38e..da74f45e0c 100644 --- a/lib/session_pack.c +++ b/lib/session_pack.c @@ -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); |