From: Nikos Mavrogiannopoulos Date: Wed, 23 Jan 2013 21:11:39 +0000 (+0100) Subject: Small changes and a sanity check X-Git-Tag: gnutls_3_1_7~83 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6557496fe1ef0b97d086596767d34e2e6c8cb307;p=thirdparty%2Fgnutls.git Small changes and a sanity check --- diff --git a/lib/gnutls_cipher.c b/lib/gnutls_cipher.c index 15ee5b0f05..4c50c416c3 100644 --- a/lib/gnutls_cipher.c +++ b/lib/gnutls_cipher.c @@ -233,10 +233,15 @@ calc_enc_length_block (gnutls_session_t session, int data_size, * this LH pad, we only add minimal padding */ unsigned int pre_length = data_size + hash_size + *pad; + unsigned int length, new_pad; - *pad = (uint8_t) (blocksize - (pre_length % blocksize)) + *pad; + new_pad = (uint8_t) (blocksize - (pre_length % blocksize)) + *pad; + + if (new_pad > 255) + new_pad -= blocksize; + *pad = new_pad; - unsigned int length = data_size + hash_size + *pad; + length = data_size + hash_size + *pad; if (_gnutls_version_has_explicit_iv (session->security_parameters.version)) @@ -297,11 +302,11 @@ make_preamble (uint8_t * uint64_data, uint8_t type, unsigned int length, */ static int compressed_to_ciphertext (gnutls_session_t session, - uint8_t * cipher_data, int cipher_size, - gnutls_datum_t *compressed, - size_t target_size, - content_type_t type, - record_parameters_st * params) + uint8_t * cipher_data, int cipher_size, + gnutls_datum_t *compressed, + size_t target_size, + content_type_t type, + record_parameters_st * params) { uint8_t * tag_ptr = NULL; uint8_t pad = target_size - compressed->size; @@ -438,11 +443,11 @@ compressed_to_ciphertext (gnutls_session_t session, static int compressed_to_ciphertext_new (gnutls_session_t session, - uint8_t * cipher_data, int cipher_size, - gnutls_datum_t *compressed, - size_t target_size, - content_type_t type, - record_parameters_st * params) + uint8_t * cipher_data, int cipher_size, + gnutls_datum_t *compressed, + size_t target_size, + content_type_t type, + record_parameters_st * params) { uint8_t * tag_ptr = NULL; uint16_t pad = target_size - compressed->size; diff --git a/lib/gnutls_range.c b/lib/gnutls_range.c index 41d4b9ec01..ebfc59b4cd 100644 --- a/lib/gnutls_range.c +++ b/lib/gnutls_range.c @@ -44,6 +44,8 @@ _gnutls_range_max_lh_pad (gnutls_session_t session, ssize_t data_length, ssize_t max_frag) { int ret; + ssize_t max_pad; + unsigned int fixed_pad; record_parameters_st *record_params; ret = _gnutls_epoch_get (session, EPOCH_WRITE_CURRENT, &record_params); @@ -52,9 +54,6 @@ _gnutls_range_max_lh_pad (gnutls_session_t session, ssize_t data_length, return gnutls_assert_val (GNUTLS_E_INVALID_REQUEST); } - ssize_t max_pad; - unsigned int fixed_pad; - if (session->security_parameters.new_record_padding != 0) { max_pad = MAX_USER_SEND_SIZE (session); @@ -260,8 +259,9 @@ gnutls_record_send_range (gnutls_session_t session, const void *data, ret = _gnutls_send_tlen_int (session, GNUTLS_APPLICATION_DATA, -1, EPOCH_WRITE_CURRENT, &(((char *) data)[sent]), - next_fragment_length, MBUFFER_FLUSH, - cur_range.high); + next_fragment_length, + cur_range.high, + MBUFFER_FLUSH); if (ret < 0) { return ret; /* already gnutls_assert_val'd */ diff --git a/lib/gnutls_record.c b/lib/gnutls_record.c index 1aa17d6be4..15c65c25cb 100644 --- a/lib/gnutls_record.c +++ b/lib/gnutls_record.c @@ -351,7 +351,7 @@ ssize_t _gnutls_send_tlen_int (gnutls_session_t session, content_type_t type, gnutls_handshake_description_t htype, unsigned int epoch_rel, const void *_data, - size_t data_size, unsigned int mflags, size_t target_length) + size_t data_size, size_t target_length, unsigned int mflags) { mbuffer_st *bufel; ssize_t cipher_size; diff --git a/lib/gnutls_record.h b/lib/gnutls_record.h index fdd182d8da..0ca8d736ee 100644 --- a/lib/gnutls_record.h +++ b/lib/gnutls_record.h @@ -29,8 +29,9 @@ ssize_t _gnutls_send_tlen_int (gnutls_session_t session, content_type_t type, gnutls_handshake_description_t htype, unsigned int epoch_rel, const void *data, - size_t sizeofdata, unsigned int mflags, - size_t targetlength); + size_t sizeofdata, + size_t targetlength, + unsigned int mflags); inline static ssize_t _gnutls_send_int (gnutls_session_t session, content_type_t type, @@ -38,7 +39,7 @@ _gnutls_send_int (gnutls_session_t session, content_type_t type, unsigned int epoch_rel, const void *_data, size_t data_size, unsigned int mflags) { - return _gnutls_send_tlen_int(session,type,htype,epoch_rel,_data,data_size,mflags,data_size); + return _gnutls_send_tlen_int(session,type,htype,epoch_rel,_data,data_size,data_size,mflags); } ssize_t _gnutls_recv_int (gnutls_session_t session, content_type_t type,