]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
reintroduced realloc_fast() which prevents some malloc(0) situations. gnutls_0_4_3
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Thu, 23 May 2002 19:30:29 +0000 (19:30 +0000)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Thu, 23 May 2002 19:30:29 +0000 (19:30 +0000)
lib/gnutls_auth.c
lib/gnutls_buffers.c
lib/gnutls_mem.h
lib/gnutls_priority.c

index c6d4830c1451baf5316289701bcdf0877ce11300..6aed393e896fdf0c3f42668f38ffe31d8f6895e7 100644 (file)
@@ -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();
index 8ffc26f8cb799e7e964ce223cea364ead7cadaf4..bcdec363ce25ada3d723162468e8d0d755eaca75 100644 (file)
@@ -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;
                                }
index aa0ab8e89a700a31c9fe37a786cb6d84b495f331..d9cbeb335826a3696ba431621c297ddd0343c71f 100644 (file)
@@ -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);
 
index fc9b402ccdaabd13b0725eee293c130c25cef00a..246ad9be6b82de77b3f26a945af4f74c62ca98b4 100644 (file)
@@ -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++;