* krb524d.c (do_connection): Do not assume that sizeof(int) == 4
authorEzra Peisach <epeisach@mit.edu>
Fri, 6 Oct 2000 16:24:32 +0000 (16:24 +0000)
committerEzra Peisach <epeisach@mit.edu>
Fri, 6 Oct 2000 16:24:32 +0000 (16:24 +0000)
* encode.c (encode_int32, decode_int32): Do not assume
sizeof(int) == 4.

* conv_creds.c (krb524_convert_creds_kdc): Do not assume
sizeof(int) == 4 in network packet.

* cnv_tkt_skey.c (krb524int_krb_cr_tkt_int): Ensure that OTW flags
is one byte long. An error was introduced when prototypes were
widened.

* Makefile.in (includes): When testing to see if krb524_err.h
exists in the include directory, compare against the build trees
version.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12725 dc483132-0cff-0310-8789-dd5450dbe970

src/krb524/ChangeLog
src/krb524/Makefile.in
src/krb524/cnv_tkt_skey.c
src/krb524/conv_creds.c
src/krb524/encode.c
src/krb524/krb524d.c

index bb2bd42be6c7c84a9106f170c7f33d2458ffe392..d8a7a6ab38a7fc8453708365a09e23f0c614f19d 100644 (file)
@@ -1,3 +1,21 @@
+2000-10-06  Ezra Peisach  <epeisach@mit.edu>
+
+       * krb524d.c (do_connection): Do not assume that sizeof(int) == 4. 
+
+       * encode.c (encode_int32, decode_int32): Do not assume 
+       sizeof(int) == 4.
+
+       * conv_creds.c (krb524_convert_creds_kdc): Do not assume
+       sizeof(int) == 4 in network packet. 
+
+       * cnv_tkt_skey.c (krb524int_krb_cr_tkt_int): Ensure that OTW flags
+       is one byte long. An error was introduced when prototypes were
+       widened.
+
+       * Makefile.in (includes): When testing to see if krb524_err.h
+       exists in the include directory, compare against the build trees
+       version.
+
 2000-10-03  Ezra Peisach  <epeisach@mit.edu>
 
        * Makefile.in: Install krb524.h and krb524_err.h header file so
index 64c942de2432693f61f1b1fa06283b637612ffdb..b49587b253c822d615409354055383dd7f578e02 100644 (file)
@@ -92,7 +92,7 @@ includes:: krb524.h krb524_err.h
                 $(CP) $(srcdir)/krb524.h \
                        $(BUILDTOP)/include/krb524.h) ; \
        fi
-       if cmp $(srcdir)/krb524_err.h \
+       if cmp krb524_err.h \
        $(BUILDTOP)/include/krb524_err.h  >/dev/null 2>&1; then :; \
        else \
                (set -x; $(RM) $(BUILDTOP)/include/krb524_err.h; \
index b4fe386ff9b1ffcadafc52f1132cfbca48c171d0..deb2f2e204eb9dcd7dfa587ec77750fa15ef590c 100644 (file)
@@ -322,10 +322,10 @@ krb524int_krb_cr_tkt_krb5(tkt, flags, pname, pinstance, prealm, paddress,
 }
 
 static int
-krb524int_krb_cr_tkt_int(tkt, flags, pname, pinstance, prealm, paddress,
+krb524int_krb_cr_tkt_int(tkt, flags_in, pname, pinstance, prealm, paddress,
               session, life, time_sec, sname, sinstance, key, k5key)
     KTEXT   tkt;                /* Gets filled in by the ticket */
-    unsigned int flags;                /* Various Kerberos flags */
+    unsigned int flags_in;     /* Various Kerberos flags */
     char    *pname;             /* Principal's name */
     char    *pinstance;         /* Principal's instance */
     char    *prealm;            /* Principal's authentication domain */
@@ -341,6 +341,8 @@ krb524int_krb_cr_tkt_int(tkt, flags, pname, pinstance, prealm, paddress,
     Key_schedule key_s;
     register char *data;        /* running index into ticket */
 
+    unsigned char flags = flags_in & 0xFF; /* This must be one byte */
+
     tkt->length = 0;            /* Clear previous data  */
 
     /* Check length of ticket */
index d5a9c3a79a4ededc1e23e8e68d55276aa3f600ef..68a80200f6ac6fb69159f8cd85e13f2add32063b 100644 (file)
@@ -63,14 +63,14 @@ krb524_convert_creds_kdc(context, v5creds, v4creds)
 
      p = reply.data;
      ret = ntohl(*((krb5_error_code *) p));
-     p += sizeof(krb5_error_code);
-     reply.length -= sizeof(krb5_error_code);
+     p += sizeof(krb5_int32);
+     reply.length -= sizeof(krb5_int32);
      if (ret)
         goto fail;
 
      v4creds->kvno = ntohl(*((krb5_error_code *) p));
-     p += sizeof(int);
-     reply.length -= sizeof(int);
+     p += sizeof(krb5_int32);
+     reply.length -= sizeof(krb5_int32);
      ret = decode_v4tkt(&v4creds->ticket_st, p, &reply.length);
 
 fail:
index c81023de5b16767921809ec9b08b5ede000cad76..6c480d4049ffb1fbd53a133f1529dddc2b0c11f1 100644 (file)
@@ -70,7 +70,7 @@ int encode_int32(out, outlen, v)
      int *outlen;
      krb5_int32 *v;
 {
-     int nv;
+     krb5_int32 nv; /* Must be 4 bytes */
 
      nv = htonl(*v);
      return encode_bytes(out, outlen, (char *) &nv, sizeof(nv));
@@ -118,7 +118,7 @@ int decode_int32(out, outlen, v)
      krb5_int32 *v;
 {
      int ret;
-     int nv;
+     krb5_int32 nv; /* Must be four bytes */
 
      if ((ret = decode_bytes(out, outlen, (char *) &nv, sizeof(nv))))
          return ret;
index cad0e31609edcbecce9b3a66e6486ec0d7fb7b64..1561a9561f89fe310a0ed2ff7228131f9cb78724 100644 (file)
@@ -252,7 +252,8 @@ krb5_error_code do_connection(s, context)
      krb5_keyblock v5_service_key, v4_service_key;
      krb5_data msgdata, tktdata;
      char msgbuf[MSGSIZE], tktbuf[TKT_BUFSIZ], *p;
-     int n, ret, saddrlen;
+     int ret, saddrlen;
+     krb5_int32 n; /* Must be 4 bytes */
      krb5_kvno v4kvno;
 
      /* Clear out keyblock contents so we don't accidentally free the stack.*/
@@ -283,7 +284,7 @@ krb5_error_code do_connection(s, context)
            break;
          default:
            /* try and recognize our own error packet */
-           if (msgdata.length == sizeof(int))
+           if (msgdata.length == sizeof(krb5_int32))
              return KRB5_BADMSGTYPE;
            else
              goto error;
@@ -342,17 +343,17 @@ error:
      msgdata.length = 0;
      
      n = htonl(ret);
-     memcpy(p, (char *) &n, sizeof(int));
-     p += sizeof(int);
-     msgdata.length += sizeof(int);
+     memcpy(p, (char *) &n, sizeof(krb5_int32));
+     p += sizeof(krb5_int32);
+     msgdata.length += sizeof(krb5_int32);
 
      if (ret)
          goto write_msg;
 
      n = htonl(v4kvno);
-     memcpy(p, (char *) &n, sizeof(int));
-     p += sizeof(int);
-     msgdata.length += sizeof(int);
+     memcpy(p, (char *) &n, sizeof(krb5_int32));
+     p += sizeof(krb5_int32);
+     msgdata.length += sizeof(krb5_int32);
 
      memcpy(p, tktdata.data, tktdata.length);
      p += tktdata.length;