summaryrefslogtreecommitdiff
path: root/lib/ext_srp.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ext_srp.c')
-rw-r--r--lib/ext_srp.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/ext_srp.c b/lib/ext_srp.c
index 887bfbbf56..d4476b19d1 100644
--- a/lib/ext_srp.c
+++ b/lib/ext_srp.c
@@ -35,8 +35,15 @@ int _gnutls_srp_recv_params( GNUTLS_STATE state, const opaque* data, int data_si
}
if (state->security_parameters.entity == GNUTLS_SERVER) {
+ /* algorithm was not selected
+ */
+ if ( gnutls_get_auth_info_type( state) != GNUTLS_SRP)
+ return 0;
+
if (data_size > 0) {
- state->gnutls_key->auth_info = gnutls_calloc(1, sizeof(SRP_SERVER_AUTH_INFO));
+ if ( state->gnutls_key->auth_info == NULL)
+ state->gnutls_key->auth_info = gnutls_calloc(1, sizeof(SRP_SERVER_AUTH_INFO));
+
if (state->gnutls_key->auth_info==NULL) return GNUTLS_E_MEMORY_ERROR;
if (sizeof( ((SRP_SERVER_AUTH_INFO)state->gnutls_key->auth_info)->username) > data_size) {