]> andersk Git - gssapi-openssh.git/commitdiff
added safe casts between size_t and int for platforms where the two are
authorjbasney <jbasney>
Thu, 12 Sep 2002 22:15:32 +0000 (22:15 +0000)
committerjbasney <jbasney>
Thu, 12 Sep 2002 22:15:32 +0000 (22:15 +0000)
different sizes (for example, IA64)

openssh/auth2-gss.c
openssh/kexgss.c
openssh/sshconnect1.c
openssh/sshconnect2.c

index c95bf2276859829ae32dbce85253166869b0a6c7..597b61404213f3a1b9aa087c32423a85b999b5cd 100644 (file)
@@ -129,12 +129,14 @@ input_gssapi_token(int type, u_int32_t plen, void *ctxt)
         Gssctxt *gssctxt;
         gss_buffer_desc send_tok,recv_tok;
         OM_uint32 maj_status, min_status;
+       int len;
         
         if (authctxt == NULL || (authctxt->methoddata == NULL && !use_privsep))
                 fatal("No authentication or GSSAPI context");
                 
         gssctxt=authctxt->methoddata;
-        recv_tok.value=packet_get_string(&recv_tok.length);
+        recv_tok.value=packet_get_string(&len);
+       recv_tok.length=len; /* int vs. size_t */
         
         maj_status=PRIVSEP(ssh_gssapi_accept_ctx(gssctxt, &recv_tok, 
                                                 &send_tok, NULL));
index 0cd9bf3cdf0ce8a1d08c5ef9e262120c6f3fbc17..0e792d7a9931f7f1dda602ba7ea9c352fd619656 100644 (file)
@@ -189,18 +189,20 @@ kexgss_client(Kex *kex)
                                debug("Received GSSAPI_CONTINUE");
                                if (maj_status == GSS_S_COMPLETE) 
                                        fatal("GSSAPI Continue received from server when complete");
-                               recv_tok.value=packet_get_string(&recv_tok.length);
+                               recv_tok.value=packet_get_string(&slen);
+                               recv_tok.length=slen; /* int vs. size_t */
                                break;
                        case SSH2_MSG_KEXGSS_COMPLETE:
                                debug("Received GSSAPI_COMPLETE");
                                packet_get_bignum2(dh_server_pub);
-                               msg_tok.value=
-                                   packet_get_string(&msg_tok.length);
+                               msg_tok.value=packet_get_string(&slen);
+                               msg_tok.length=slen; /* int vs. size_t */
 
                                /* Is there a token included? */
                                if (packet_get_char()) {
                                        recv_tok.value=
-                                           packet_get_string(&recv_tok.length);
+                                           packet_get_string(&slen);
+                                       recv_tok.length=slen; /* int/size_t */
                                        /* If we're already complete - protocol error */
                                        if (maj_status == GSS_S_COMPLETE)
                                                packet_disconnect("Protocol error: received token when complete");
@@ -239,6 +241,7 @@ kexgss_client(Kex *kex)
         memset(kbuf, 0, klen);
         xfree(kbuf);
         
+       slen=0;
         hash = kex_gssapi_hash(
            kex->client_version_string,
             kex->server_version_string,
@@ -302,6 +305,7 @@ kexgss_server(Kex *kex)
         BIGNUM *dh_client_pub = NULL;
        int type =0;
        gss_OID oid;
+       u_int slen;
        
        /* Initialise GSSAPI */
 
@@ -323,7 +327,8 @@ kexgss_server(Kex *kex)
                case SSH2_MSG_KEXGSS_INIT:
                        if (dh_client_pub!=NULL) 
                                packet_disconnect("Received KEXGSS_INIT after initialising");
-                       recv_tok.value=packet_get_string(&recv_tok.length);
+                       recv_tok.value=packet_get_string(&slen);
+                       recv_tok.length=slen; /* int vs. size_t */
 
                        dh_client_pub = BN_new();
                        
@@ -336,7 +341,8 @@ kexgss_server(Kex *kex)
                case SSH2_MSG_KEXGSS_CONTINUE:
                        if (dh_client_pub == NULL)
                                packet_disconnect("Received KEXGSS_CONTINUE without initialising");
-                       recv_tok.value=packet_get_string(&recv_tok.length);
+                       recv_tok.value=packet_get_string(&slen);
+                       recv_tok.length=slen; /* int vs. size_t */
                        break;
                default:
                        packet_disconnect("Protocol error: didn't expect packet type %d",
index 5731166744360400911372d3696b4ff98d793ca2..3099a58fc2a8b4ae20a5dfa34f9d884d1c6ed335 100644 (file)
@@ -1087,6 +1087,7 @@ int try_gssapi_authentication(char *host, Options *options)
   char *gssapi_auth_type = NULL;
   struct hostent *hostinfo;
   char *addr;
+  unsigned int slen;
 
   /*
    * host is not guarenteed to be a FQDN, so we need to make sure it is.
@@ -1190,7 +1191,7 @@ int try_gssapi_authentication(char *host, Options *options)
 
 #endif /* GSSAPI */
 
-  debug("req_flags = %lu", req_flags);
+  debug("req_flags = %u", req_flags);
 
   name_tok.value = service_name;
   name_tok.length = strlen(service_name) + 1;
@@ -1249,7 +1250,8 @@ int try_gssapi_authentication(char *host, Options *options)
   }
 
   /* Read the mechanism the server returned */
-  mech_oid.elements = packet_get_string((unsigned int *) &(mech_oid.length));
+  mech_oid.elements = packet_get_string(&slen);
+  mech_oid.length = slen;      /* safe typecast */
   packet_get_all();
 
   /*
@@ -1335,7 +1337,8 @@ int try_gssapi_authentication(char *host, Options *options)
         /* Does not return */
       }
 
-      recv_tok.value = packet_get_string((unsigned int *) &recv_tok.length);
+      recv_tok.value = packet_get_string(&slen);
+      recv_tok.length=slen;    /* safe typecast */
       packet_get_all();
       token_ptr = &recv_tok;
     }
@@ -1366,7 +1369,8 @@ int try_gssapi_authentication(char *host, Options *options)
     gss_qop_t qop_state;
 
 
-    wrapped_buf.value = packet_get_string(&(wrapped_buf.length));
+    wrapped_buf.value = packet_get_string(&slen);
+    wrapped_buf.length=slen;   /* safe typecast */
     packet_get_all();
 
     maj_stat = gss_unwrap(&min_stat,
@@ -1386,7 +1390,8 @@ int try_gssapi_authentication(char *host, Options *options)
     if (unwrapped_buf.length != sizeof(ssh_key_digest)) {
       packet_disconnect("Verification of SSHD keys through GSSAPI-secured channel failed: "
                         "Size of key hashes do not match (%d != %d)!",
-                        unwrapped_buf.length, sizeof(ssh_key_digest));
+                        (int)unwrapped_buf.length,
+                       (int)sizeof(ssh_key_digest));
     }
 
     if (memcmp(ssh_key_digest, unwrapped_buf.value, sizeof(ssh_key_digest)) != 0) {
index 5c4943f87f50ff2c0428e6d1315507636c072e0d..38cef29cfc391a5ea7caf648f31301bd5d80a86d 100644 (file)
@@ -595,12 +595,14 @@ input_gssapi_token(int type, u_int32_t plen, void *ctxt)
        Gssctxt *gssctxt;
        gss_buffer_desc send_tok,recv_tok;
        OM_uint32 status;
+       u_int slen;
        
        if (authctxt == NULL)
                fatal("input_gssapi_response: no authentication context");
        gssctxt = authctxt->methoddata;
        
-       recv_tok.value=packet_get_string(&recv_tok.length);
+       recv_tok.value=packet_get_string(&slen);
+       recv_tok.length=slen;   /* safe typecast */
 
        status=ssh_gssapi_init_ctx(gssctxt, options.gss_deleg_creds,
                                   &recv_tok, &send_tok, NULL);
This page took 0.089428 seconds and 5 git commands to generate.