]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
some cleanups in the extension parsing
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 11 Sep 2002 06:34:26 +0000 (06:34 +0000)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 11 Sep 2002 06:34:26 +0000 (06:34 +0000)
lib/ext_cert_type.c
lib/ext_max_record.c
libextra/ext_srp.c

index eec02ed4a10da1d438ccca68551e64bd40aa9614..b86615d4c7b6d5fc8d2a098d8a00689a8384f083 100644 (file)
@@ -39,7 +39,8 @@
  *
  */
 
-int _gnutls_cert_type_recv_params( gnutls_session session, const opaque* data, int data_size) {
+int _gnutls_cert_type_recv_params( gnutls_session session, const opaque* data, int data_size) 
+{
        int new_type = -1, ret, i;
        
        if (session->security_parameters.entity == GNUTLS_CLIENT) {
index bf5371e74af47258013361cf8e1f1ecb85e42796..ec41bd7ffdc5bd6f76a3d19d507e2550ef17bc49 100644 (file)
  */
 
 int _gnutls_max_record_recv_params( gnutls_session session, const opaque* data, int data_size) {
-       size_t new_size;
+       ssize_t new_size;
        
        if (session->security_parameters.entity == GNUTLS_SERVER) {
                if (data_size > 0) {
-                       if ( data_size != 1) {
-                               gnutls_assert();
-                               return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
-                       }
+                       DECR_LEN( data_size, 1);
                        
                        new_size = _gnutls_mre_num2record(data[0]);
 
@@ -100,7 +97,7 @@ int _gnutls_max_record_send_params( gnutls_session session, opaque* data, int da
                                return GNUTLS_E_INVALID_REQUEST;
                        }
                        
-                       data[0] = _gnutls_mre_record2num( session->internals.proposed_record_size);
+                       data[0] = (uint8) _gnutls_mre_record2num( session->internals.proposed_record_size);
                        return len;
                }
 
@@ -113,7 +110,7 @@ int _gnutls_max_record_send_params( gnutls_session session, opaque* data, int da
                                return GNUTLS_E_INVALID_REQUEST;
                        }
                        
-                       data[0] = _gnutls_mre_record2num( session->security_parameters.max_record_recv_size);
+                       data[0] = (uint8) _gnutls_mre_record2num( session->security_parameters.max_record_recv_size);
                        return len;
                }       
        
@@ -126,7 +123,7 @@ int _gnutls_max_record_send_params( gnutls_session session, opaque* data, int da
 /* Maps numbers to record sizes according to the
  * extensions draft.
  */
-int _gnutls_mre_num2record( int num) {
+ssize_t _gnutls_mre_num2record( int num) {
        switch( num) {
        case 1:
                return 512;
index 9bdb737ca9b7f247ed22ccf43ec1b4139850a56f..96cd773f212e1ecc12e826f46283824fe570f484 100644 (file)
@@ -39,10 +39,8 @@ int _gnutls_srp_recv_params( gnutls_session state, const opaque* data, int data_
        if (state->security_parameters.entity == GNUTLS_SERVER) {
                if (data_size > 0) {
                        len = data[0];
-                       if (len > data_size) {
-                               gnutls_assert();
-                               return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
-                       }
+                       DECR_LEN( data_size, len);
+
                        if ( sizeof( state->security_parameters.extensions.srp_username) <= len) {
                                gnutls_assert();
                                return GNUTLS_E_MEMORY_ERROR;
@@ -86,7 +84,7 @@ int _gnutls_srp_send_params( gnutls_session state, opaque* data, int data_size)
                                return GNUTLS_E_INVALID_REQUEST;
                        }
 
-                       data[0] = len;
+                       data[0] = (uint8) len;
                        memcpy( &data[1], cred->username, len);
                        return len + 1;
                }