diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2001-12-17 15:49:09 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2001-12-17 15:49:09 +0000 |
commit | 031ba98090dcf9818175c320f761ee294d897894 (patch) | |
tree | cdfcb3fa0c959b740b0f3be27501446ea5611a49 /lib/gnutls_session_pack.c | |
parent | b2aa28875f2c5d8af89b82e2a067171c679ef317 (diff) | |
download | gnutls-031ba98090dcf9818175c320f761ee294d897894.tar.gz |
corrections in SRP and ANON authentication.
Also corrections in the session packing for anonymous auth info.
Diffstat (limited to 'lib/gnutls_session_pack.c')
-rw-r--r-- | lib/gnutls_session_pack.c | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/lib/gnutls_session_pack.c b/lib/gnutls_session_pack.c index da5cfad1d9..c7f0b25589 100644 --- a/lib/gnutls_session_pack.c +++ b/lib/gnutls_session_pack.c @@ -84,12 +84,11 @@ int _gnutls_session_pack(GNUTLS_STATE state, gnutls_datum * packed_session) if (info == NULL && state->gnutls_key->auth_info_size!=0) return GNUTLS_E_INVALID_PARAMETERS; - pack_size = state->gnutls_key->auth_info_size; packed_session->size = - PACK_HEADER_SIZE + pack_size + sizeof(uint32); + PACK_HEADER_SIZE + state->gnutls_key->auth_info_size + sizeof(uint32); packed_session->data[0] = GNUTLS_ANON; - WRITEuint32(pack_size, + WRITEuint32(state->gnutls_key->auth_info_size, &packed_session-> data[PACK_HEADER_SIZE]); @@ -97,7 +96,7 @@ int _gnutls_session_pack(GNUTLS_STATE state, gnutls_datum * packed_session) memcpy(&packed_session-> data[PACK_HEADER_SIZE + sizeof(uint32)], info, state->gnutls_key->auth_info_size); - + } break; case GNUTLS_X509PKI:{ @@ -196,9 +195,8 @@ int _gnutls_session_unpack(GNUTLS_STATE state, } state->gnutls_key->auth_info = - gnutls_calloc(1, - sizeof - (SRP_SERVER_AUTH_INFO_INT)); + gnutls_malloc( pack_size); + if (state->gnutls_key->auth_info == NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; @@ -210,7 +208,7 @@ int _gnutls_session_unpack(GNUTLS_STATE state, memcpy(state->gnutls_key->auth_info, &packed_session->data[PACK_HEADER_SIZE + sizeof(uint32)], - sizeof(SRP_SERVER_AUTH_INFO_INT)); + pack_size); } break; case GNUTLS_ANON:{ @@ -226,19 +224,17 @@ int _gnutls_session_unpack(GNUTLS_STATE state, } state->gnutls_key->auth_info = - gnutls_calloc(1, - sizeof - (ANON_CLIENT_AUTH_INFO_INT)); + gnutls_malloc( pack_size); + if (state->gnutls_key->auth_info == NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; } - state->gnutls_key->auth_info_size = - sizeof(ANON_CLIENT_AUTH_INFO_INT); + state->gnutls_key->auth_info_size = pack_size; memcpy(state->gnutls_key->auth_info, - &packed_session->data[PACK_HEADER_SIZE], - sizeof(ANON_CLIENT_AUTH_INFO_INT)); + &packed_session->data[PACK_HEADER_SIZE + sizeof(uint32)], + pack_size); } break; case GNUTLS_X509PKI:{ @@ -254,8 +250,8 @@ int _gnutls_session_unpack(GNUTLS_STATE state, } state->gnutls_key->auth_info = - gnutls_calloc(1, - sizeof(X509PKI_AUTH_INFO_INT)); + gnutls_malloc( sizeof(X509PKI_AUTH_INFO_INT)); + if (state->gnutls_key->auth_info == NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; |