Skip to content

Commit

Permalink
Add the check after calling OPENSSL_strdup
Browse files Browse the repository at this point in the history
Since the potential failure of the memory allocation, the
OPENSSL_strdup() could return NULL pointer.
Therefore, it should be better to check it in order to guarantee the
success of the configuration, same as the check for
SSL_CTX_set_srp_username().

Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from #17643)
  • Loading branch information
JiangJias authored and paulidale committed Feb 8, 2022
1 parent 29af9fb commit 09030ee
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions test/helpers/handshake_srp.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,13 @@ int configure_handshake_ctx_for_srp(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
SSL_CTX_set_srp_username_callback(server_ctx, server_srp_cb);
server_ctx_data->srp_user = OPENSSL_strdup(extra->server.srp_user);
server_ctx_data->srp_password = OPENSSL_strdup(extra->server.srp_password);
if (server_ctx_data->srp_user == NULL || server_ctx_data->srp_password == NULL) {
OPENSSL_free(server_ctx_data->srp_user);
OPENSSL_free(server_ctx_data->srp_password);
server_ctx_data->srp_user = NULL;
server_ctx_data->srp_password = NULL;
return 0;
}
SSL_CTX_set_srp_cb_arg(server_ctx, server_ctx_data);
}
if (extra->server2.srp_user != NULL) {
Expand All @@ -57,6 +64,13 @@ int configure_handshake_ctx_for_srp(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
SSL_CTX_set_srp_username_callback(server2_ctx, server_srp_cb);
server2_ctx_data->srp_user = OPENSSL_strdup(extra->server2.srp_user);
server2_ctx_data->srp_password = OPENSSL_strdup(extra->server2.srp_password);
if (server2_ctx_data->srp_user == NULL || server2_ctx_data->srp_password == NULL) {
OPENSSL_free(server2_ctx_data->srp_user);
OPENSSL_free(server2_ctx_data->srp_password);
server2_ctx_data->srp_user = NULL;
server2_ctx_data->srp_password = NULL;
return 0;
}
SSL_CTX_set_srp_cb_arg(server2_ctx, server2_ctx_data);
}
if (extra->client.srp_user != NULL) {
Expand All @@ -65,6 +79,8 @@ int configure_handshake_ctx_for_srp(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
return 0;
SSL_CTX_set_srp_client_pwd_callback(client_ctx, client_srp_cb);
client_ctx_data->srp_password = OPENSSL_strdup(extra->client.srp_password);
if (client_ctx_data->srp_password == NULL)
return 0;
SSL_CTX_set_srp_cb_arg(client_ctx, client_ctx_data);
}
return 1;
Expand Down

0 comments on commit 09030ee

Please sign in to comment.