diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2001-06-24 15:41:30 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2001-06-24 15:41:30 +0000 |
commit | a9e80856e9ac99d2ae0eec8e10be899711d3f73c (patch) | |
tree | 0429d8c8a7c1a98cbeb9d43f1ef42b88b17ef293 /lib | |
parent | 540092e91921e9a89459a2709f39d9d35a0c4f8f (diff) | |
download | gnutls-a9e80856e9ac99d2ae0eec8e10be899711d3f73c.tar.gz |
some portability fixes
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gnutls_handshake.c | 5 | ||||
-rw-r--r-- | lib/gnutls_priority.c | 65 |
2 files changed, 42 insertions, 28 deletions
diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index b80861256b..35e67bb6d5 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -687,6 +687,11 @@ int _gnutls_recv_handshake(SOCKET cd, GNUTLS_STATE state, uint8 ** data, } dataptr = gnutls_realloc(dataptr, length32 + handshake_headers); + if (dataptr == NULL) { + gnutls_assert(); + return GNUTLS_E_MEMORY_ERROR; + } + if (length32 > 0 && data != NULL) *data = gnutls_malloc(length32); diff --git a/lib/gnutls_priority.c b/lib/gnutls_priority.c index 31e1393461..81ac636852 100644 --- a/lib/gnutls_priority.c +++ b/lib/gnutls_priority.c @@ -20,6 +20,7 @@ #include "gnutls_int.h" #include "gnutls_algorithms.h" +#include "gnutls_errors.h" /* the prototypes for these are in gnutls.h */ @@ -35,31 +36,35 @@ * not use the algorithm's priority except for disabling * algorithms that were not specified. **/ -void gnutls_set_cipher_priority( GNUTLS_STATE state, LIST) { +int gnutls_set_cipher_priority( GNUTLS_STATE state, LIST) { va_list ap; - int i, num=0; - BulkCipherAlgorithm* _ap; - + int i,num=0; + va_list _ap; + va_start( ap, state); _ap = ap; - i=0; do { num++; - } while( _ap[++i] != 0); + } while( va_arg(ap, BulkCipherAlgorithm) != 0); if (state->gnutls_internals.BulkCipherAlgorithmPriority.algorithm_priority!=NULL) gnutls_free(state->gnutls_internals.BulkCipherAlgorithmPriority.algorithm_priority); state->gnutls_internals.BulkCipherAlgorithmPriority.algorithm_priority = gnutls_malloc(sizeof(int*)*num); + if (state->gnutls_internals.BulkCipherAlgorithmPriority.algorithm_priority == NULL) + return GNUTLS_E_MEMORY_ERROR; + state->gnutls_internals.BulkCipherAlgorithmPriority.algorithms = num; for (i=0;i<num;i++) { - state->gnutls_internals.BulkCipherAlgorithmPriority.algorithm_priority[i] = _ap[i]; + state->gnutls_internals.BulkCipherAlgorithmPriority.algorithm_priority[i] = va_arg(_ap, BulkCipherAlgorithm); } va_end(ap); + + return 0; } /** @@ -74,31 +79,32 @@ void gnutls_set_cipher_priority( GNUTLS_STATE state, LIST) { * not use the algorithm's priority except for disabling * algorithms that were not specified. **/ -void gnutls_set_kx_priority( GNUTLS_STATE state, LIST) { +int gnutls_set_kx_priority( GNUTLS_STATE state, LIST) { va_list ap; - int i, num=0; - KXAlgorithm *_ap; + va_list _ap; + int i,num=0; va_start( ap, state); - _ap = ap; - i=0; do { num++; - } while( _ap[++i] != 0); + } while( va_arg(ap, KXAlgorithm) != 0); if (state->gnutls_internals.KXAlgorithmPriority.algorithm_priority!=NULL) gnutls_free(state->gnutls_internals.KXAlgorithmPriority.algorithm_priority); state->gnutls_internals.KXAlgorithmPriority.algorithm_priority = gnutls_malloc(sizeof(int*)*num); + if (state->gnutls_internals.KXAlgorithmPriority.algorithm_priority==NULL) + return GNUTLS_E_MEMORY_ERROR; state->gnutls_internals.KXAlgorithmPriority.algorithms = num; for (i=0;i<num;i++) { - state->gnutls_internals.KXAlgorithmPriority.algorithm_priority[i] = _ap[i]; + state->gnutls_internals.KXAlgorithmPriority.algorithm_priority[i] = va_arg( _ap, KXAlgorithm); } va_end(ap); + return 0; } /** @@ -113,31 +119,32 @@ void gnutls_set_kx_priority( GNUTLS_STATE state, LIST) { * not use the algorithm's priority except for disabling * algorithms that were not specified. **/ -void gnutls_set_mac_priority( GNUTLS_STATE state, LIST) { +int gnutls_set_mac_priority( GNUTLS_STATE state, LIST) { va_list ap; int i, num=0; - MACAlgorithm *_ap; + va_list _ap; va_start( ap, state); _ap = ap; - - i=0; do { num++; - } while( _ap[++i] != 0); + } while( va_arg(ap, MACAlgorithm) != 0); if (state->gnutls_internals.MACAlgorithmPriority.algorithm_priority!=NULL) gnutls_free(state->gnutls_internals.MACAlgorithmPriority.algorithm_priority); state->gnutls_internals.MACAlgorithmPriority.algorithm_priority = gnutls_malloc(sizeof(int*)*num); + if (state->gnutls_internals.MACAlgorithmPriority.algorithm_priority ==NULL) + return GNUTLS_E_MEMORY_ERROR; state->gnutls_internals.MACAlgorithmPriority.algorithms = num; for (i=0;i<num;i++) { - state->gnutls_internals.MACAlgorithmPriority.algorithm_priority[i] = _ap[i]; + state->gnutls_internals.MACAlgorithmPriority.algorithm_priority[i] = va_arg(_ap, MACAlgorithm); } va_end(ap); + return 0; } /** @@ -152,27 +159,29 @@ void gnutls_set_mac_priority( GNUTLS_STATE state, LIST) { * not use the algorithm's priority except for disabling * algorithms that were not specified. **/ -void gnutls_set_compression_priority( GNUTLS_STATE state, LIST) { +int gnutls_set_compression_priority( GNUTLS_STATE state, LIST) { va_list ap; - int i, num=0; - CompressionMethod *_ap; + int i,num=0; + va_list _ap; va_start( ap, state); - _ap = ap; - i=0; do { num++; - } while( _ap[++i] != 0); - + } while( va_arg( ap, CompressionMethod) != 0); + if (state->gnutls_internals.CompressionMethodPriority.algorithm_priority!=NULL) gnutls_free(state->gnutls_internals.CompressionMethodPriority.algorithm_priority); state->gnutls_internals.CompressionMethodPriority.algorithm_priority = gnutls_malloc(sizeof(int*)*num); + if (state->gnutls_internals.CompressionMethodPriority.algorithm_priority == NULL) + return GNUTLS_E_MEMORY_ERROR; + state->gnutls_internals.CompressionMethodPriority.algorithms = num; for (i=0;i<num;i++) { - state->gnutls_internals.CompressionMethodPriority.algorithm_priority[i] = _ap[i]; + state->gnutls_internals.CompressionMethodPriority.algorithm_priority[i] = va_arg( _ap, CompressionMethod); } va_end(ap); + return 0; } |