aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGraham Edgecombe <gpe@grahamedgecombe.com>2017-04-25 19:36:10 +0100
committerMatt Caswell <matt@openssl.org>2017-04-26 17:37:30 +0100
commite596c68c315dc896458cd2a97ab62ec88e144e0b (patch)
tree85bb287da29f8c3324fb78862bb6e8af515581a9
parent8ed9a26616a7101ea698c189fbbb663186676075 (diff)
downloadopenssl-e596c68c315dc896458cd2a97ab62ec88e144e0b.tar.gz
Return success in custom_ext_parse_old_cb_wrap if parse_cb is NULL
This fixes a segfault if a NULL parse_cb is passed to SSL_CTX_add_{client,server}_custom_ext, which was supported in the pre-1.1.1 implementation. This behaviour is consistent with the other custom_ext_*_old_cb_wrap functions, and with the new SSL_CTX_add_custom_ext function. CLA: trivial Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3310)
-rw-r--r--ssl/statem/extensions_cust.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ssl/statem/extensions_cust.c b/ssl/statem/extensions_cust.c
index 3188adea0c..6de59e2425 100644
--- a/ssl/statem/extensions_cust.c
+++ b/ssl/statem/extensions_cust.c
@@ -64,6 +64,9 @@ static int custom_ext_parse_old_cb_wrap(SSL *s, unsigned int ext_type,
custom_ext_parse_cb_wrap *parse_cb_wrap =
(custom_ext_parse_cb_wrap *)parse_arg;
+ if (parse_cb_wrap->parse_cb == NULL)
+ return 1;
+
return parse_cb_wrap->parse_cb(s, ext_type, in, inlen, al,
parse_cb_wrap->parse_arg);
}