]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
state: call secret_func on early write key change as well
authorDaiki Ueno <ueno@gnu.org>
Thu, 29 Apr 2021 06:23:15 +0000 (08:23 +0200)
committerDaiki Ueno <ueno@gnu.org>
Thu, 13 May 2021 09:19:17 +0000 (11:19 +0200)
Signed-off-by: Daiki Ueno <ueno@gnu.org>
lib/constate.c

index ffa343000eedae1bd5d32ea4c2d9902c87bed17e..ca520480aeb3cfbad5b0b80905fea9d2c797144d 100644 (file)
@@ -1150,6 +1150,11 @@ _gnutls_call_secret_func(gnutls_session_t session,
                                return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
                        secret_read = session->key.proto.tls13.e_ckey;
                }
+               if (for_write) {
+                       if (unlikely(session->security_parameters.entity == GNUTLS_SERVER))
+                               return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+                       secret_write = session->key.proto.tls13.e_ckey;
+               }
                break;
        case STAGE_HS:
                prf = session->security_parameters.prf;