diff options
-rw-r--r-- | lib/gnutls_auth.c | 2 | ||||
-rw-r--r-- | lib/gnutls_buffers.c | 16 | ||||
-rw-r--r-- | lib/gnutls_mem.h | 2 | ||||
-rw-r--r-- | lib/gnutls_priority.c | 2 |
4 files changed, 12 insertions, 10 deletions
diff --git a/lib/gnutls_auth.c b/lib/gnutls_auth.c index c6d4830c14..6aed393e89 100644 --- a/lib/gnutls_auth.c +++ b/lib/gnutls_auth.c @@ -270,7 +270,7 @@ int _gnutls_auth_info_set( GNUTLS_STATE state, CredType type, int size, int allo * to passive eavesdropers. */ if ( gnutls_auth_get_type( state) != state->gnutls_key->auth_info_type) { - state->gnutls_key->auth_info = gnutls_realloc( + state->gnutls_key->auth_info = gnutls_realloc_fast( state->gnutls_key->auth_info, size); if (state->gnutls_key->auth_info == NULL) { gnutls_assert(); diff --git a/lib/gnutls_buffers.c b/lib/gnutls_buffers.c index 8ffc26f8cb..bcdec363ce 100644 --- a/lib/gnutls_buffers.c +++ b/lib/gnutls_buffers.c @@ -162,7 +162,7 @@ int _gnutls_record_buffer_get(ContentType type, GNUTLS_STATE state, char *data, /* this does not fail */ state->gnutls_internals.application_data_buffer.data = - gnutls_realloc(state->gnutls_internals.application_data_buffer.data, + gnutls_realloc_fast(state->gnutls_internals.application_data_buffer.data, state->gnutls_internals.application_data_buffer.size); break; @@ -183,7 +183,7 @@ int _gnutls_record_buffer_get(ContentType type, GNUTLS_STATE state, char *data, /* does not fail */ state->gnutls_internals.handshake_data_buffer.data = - gnutls_realloc(state->gnutls_internals.handshake_data_buffer.data, + gnutls_realloc_fast(state->gnutls_internals.handshake_data_buffer.data, state->gnutls_internals.handshake_data_buffer.size); break; default: @@ -369,9 +369,9 @@ ssize_t _gnutls_io_read_buffered( GNUTLS_STATE state, opaque **iptr, size_t size */ alloc_size = recvdata+state->gnutls_internals.record_recv_buffer.size; - state->gnutls_internals.record_recv_buffer.data = gnutls_realloc( + state->gnutls_internals.record_recv_buffer.data = gnutls_realloc_fast( state->gnutls_internals.record_recv_buffer.data, alloc_size); - if ( state->gnutls_internals.record_recv_buffer.data==NULL && alloc_size > 0) { + if ( state->gnutls_internals.record_recv_buffer.data==NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; } @@ -484,10 +484,10 @@ static int _gnutls_buffer_insert( gnutls_datum * buffer, const opaque* _data, in } - buffer->data = gnutls_realloc( buffer->data, data_size); + buffer->data = gnutls_realloc_fast( buffer->data, data_size); buffer->size = data_size; - if (buffer->data == NULL && data_size > 0) { + if (buffer->data == NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; } @@ -844,9 +844,9 @@ ssize_t _gnutls_handshake_io_recv_int( GNUTLS_STATE state, ContentType type, Han if (dsize > 0 && (i==GNUTLS_E_INTERRUPTED || i==GNUTLS_E_AGAIN)) { gnutls_assert(); - state->gnutls_internals.handshake_recv_buffer.data = gnutls_realloc( + state->gnutls_internals.handshake_recv_buffer.data = gnutls_realloc_fast( state->gnutls_internals.handshake_recv_buffer.data, dsize); - if (state->gnutls_internals.handshake_recv_buffer.data==NULL && dsize > 0) { + if (state->gnutls_internals.handshake_recv_buffer.data==NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; } diff --git a/lib/gnutls_mem.h b/lib/gnutls_mem.h index aa0ab8e89a..d9cbeb3358 100644 --- a/lib/gnutls_mem.h +++ b/lib/gnutls_mem.h @@ -25,6 +25,8 @@ void (*gnutls_free)(void*); int (*_gnutls_is_secure_memory)(const void*); void* (*gnutls_realloc)(void*, size_t); +#define gnutls_realloc_fast(x, y) (y==0?x:realloc(x, y)) + svoid* gnutls_secure_calloc( size_t nmemb, size_t size); void* gnutls_calloc( size_t nmemb, size_t size); diff --git a/lib/gnutls_priority.c b/lib/gnutls_priority.c index fc9b402ccd..246ad9be6b 100644 --- a/lib/gnutls_priority.c +++ b/lib/gnutls_priority.c @@ -203,10 +203,10 @@ int num=0, i; * types that were not specified. **/ int gnutls_cert_type_set_priority( GNUTLS_STATE state, GNUTLS_LIST list) { +#ifdef HAVE_LIBOPENCDK GNUTLS_LIST _list = list; int num=0, i; -#ifdef HAVE_LIBOPENCDK while( *_list != 0) { num++; |