]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix memory leak in tls_parse_ctos_psk()
authorNiels Dossche <7771979+nielsdos@users.noreply.github.com>
Wed, 9 Oct 2024 13:42:37 +0000 (15:42 +0200)
committerTomas Mraz <tomas@openssl.org>
Fri, 11 Oct 2024 12:54:03 +0000 (14:54 +0200)
`sess` is not NULL at this point, and is freed on the success path, but
not on the error path. Fix this by going to the `err` label such that
`SSL_SESSION_free(sess)` is called.

CLA: trivial

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25643)

ssl/statem/extensions_srvr.c

index cb143aa84380d54e5d2d2a1d40838e79ffd50409..5d91d3893f7ff73ba8828adcb26cd89df7cc2576 100644 (file)
@@ -1121,7 +1121,7 @@ int tls_parse_ctos_psk(SSL_CONNECTION *s, PACKET *pkt, unsigned int context,
 
             if (sesstmp == NULL) {
                 SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_INTERNAL_ERROR);
-                return 0;
+                goto err;
             }
             SSL_SESSION_free(sess);
             sess = sesstmp;