From: Nikos Mavrogiannopoulos Date: Thu, 25 Jan 2001 02:11:29 +0000 (+0000) Subject: changes in gnutls_encrypt() X-Git-Tag: gnutls-0-1-0-srp~60 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cfdeb96c081fde3af520f5afcb4fac37ee4ecd86;p=thirdparty%2Fgnutls.git changes in gnutls_encrypt() --- diff --git a/lib/gnutls_cipher.c b/lib/gnutls_cipher.c index 30f9d628ff..52a0460ce0 100644 --- a/lib/gnutls_cipher.c +++ b/lib/gnutls_cipher.c @@ -30,7 +30,7 @@ #include "debug.h" int _gnutls_encrypt(GNUTLS_STATE state, char *data, size_t data_size, - uint8 ** ciphertext, ContentType type) + uint8 * ciphertext, ContentType type) { GNUTLSPlaintext *gtxt; GNUTLSCompressed *gcomp; @@ -63,13 +63,17 @@ int _gnutls_encrypt(GNUTLS_STATE state, char *data, size_t data_size, _gnutls_freeTLSCompressed(gcomp); - *ciphertext = gnutls_malloc(gcipher->length); - if (*ciphertext == NULL) { + if (ciphertext == NULL) { gnutls_assert(); return GNUTLS_E_MEMORY_ERROR; } - memmove((*ciphertext), gcipher->fragment, gcipher->length); - + if (gcipher->length < MAX_ENC_LEN) + memmove(ciphertext, gcipher->fragment, gcipher->length); + else { + /* that shouldn't happen! */ + gnutls_assert(); + return GNUTLS_E_UNEXPECTED_PACKET_LENGTH; + } total_length += gcipher->length; _gnutls_freeTLSCiphertext(gcipher); diff --git a/lib/gnutls_cipher.h b/lib/gnutls_cipher.h index dc0ed1d445..daf0563804 100644 --- a/lib/gnutls_cipher.h +++ b/lib/gnutls_cipher.h @@ -1,4 +1,4 @@ -int _gnutls_encrypt( GNUTLS_STATE state, char* data, size_t data_size, uint8** ciphertext, ContentType type); +int _gnutls_encrypt( GNUTLS_STATE state, char* data, size_t data_size, uint8* ciphertext, ContentType type); int _gnutls_decrypt(GNUTLS_STATE state, char *ciphertext, size_t ciphertext_size, uint8 ** data, ContentType type);