For windows, mask off low 16 bits because Gradient DCE does things
authorTheodore Tso <tytso@mit.edu>
Tue, 30 Apr 1996 18:48:49 +0000 (18:48 +0000)
committerTheodore Tso <tytso@mit.edu>
Tue, 30 Apr 1996 18:48:49 +0000 (18:48 +0000)
wrong.

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

src/lib/krb5/ccache/file/ChangeLog
src/lib/krb5/ccache/file/fcc_read.c
src/lib/krb5/ccache/stdio/ChangeLog
src/lib/krb5/ccache/stdio/scc_read.c

index 9b6010664a9fd4ead49667b662e05942b2334f5c..17559ecf23dc10ed7bf94d5cad80fc950ffdbe28 100644 (file)
@@ -1,3 +1,10 @@
+Wed Feb 14 10:44:27 1996    <tytso@rsts-11.mit.edu>
+
+       * fcc_read.c (krb5_fcc_read_keyblock, krb5_fcc_read_data,
+               krb5_fcc_read_authdatum, krb5_fcc_read_addr): For windows,
+               mask off low 16 bits because Gradient DCE does things
+               wrong.
+
 Wed Mar 20 22:48:51 1996  Theodore Y. Ts'o  <tytso@dcl>
 
        * fcc-proto.h (krb5_fcc_skip_header): Added prototype (fix Windows
index aa2cba8ea50012f3f29bdf3006b6d9f33e89408c..c4ff13d202e126bcb6521f7a7919497d30b68816 100644 (file)
@@ -214,8 +214,12 @@ krb5_fcc_read_keyblock(context, id, keyblock)
 
      kret = krb5_fcc_read_int32(context, id, &int32);
      CHECK(kret);
+#ifdef _WINDOWS
+     int32 &= VALID_INT_BITS;    /* Gradient does not write  correctly */     
+#else
      if ((int32 & VALID_INT_BITS) != int32)     /* Overflow size_t??? */
          return KRB5_CC_NOMEM;
+#endif
      keyblock->length = (int) int32;
      if ( keyblock->length == 0 )
             return KRB5_OK;
@@ -249,8 +253,12 @@ krb5_fcc_read_data(context, id, data)
 
      kret = krb5_fcc_read_int32(context, id, &len);
      CHECK(kret);
+#ifdef _WINDOWS
+     len &= VALID_INT_BITS;
+#else
      if ((len & VALID_INT_BITS) != len)
         return KRB5_CC_NOMEM;
+#endif
      data->length = (int) len;
 
      if (data->length == 0) {
@@ -292,8 +300,12 @@ krb5_fcc_read_addr(context, id, addr)
      
      kret = krb5_fcc_read_int32(context, id, &int32);
      CHECK(kret);
+#ifdef _WINDOWS
+     int32 &= VALID_INT_BITS;  /* Gradient DCE does this wrong */
+#else
      if ((int32 & VALID_INT_BITS) != int32)     /* Overflow int??? */
          return KRB5_CC_NOMEM;
+#endif
      addr->length = (int) int32;
 
      if (addr->length == 0)
@@ -471,8 +483,12 @@ krb5_fcc_read_authdatum(context, id, a)
     a->ad_type = (krb5_authdatatype)ui2;
     kret = krb5_fcc_read_int32(context, id, &int32);
     CHECK(kret);
+#ifdef _WINDOWS
+    int32 &= VALID_INT_BITS;
+#else
     if ((int32 & VALID_INT_BITS) != int32)     /* Overflow int??? */
           return KRB5_CC_NOMEM;
+#endif
     a->length = (int) int32;
     
     if (a->length == 0 )
index 4eb60f7d5fa73897f8499b277bbb762303cc8bc3..bb5664f3920017ba40319061b8731a0147dcdfed 100644 (file)
@@ -1,3 +1,10 @@
+Wed Feb 14 10:44:27 1996    <tytso@rsts-11.mit.edu>
+
+       * scc_read.c (krb5_scc_read_keyblock, krb5_scc_read_data,
+               krb5_scc_read_authdatum, krb5_scc_read_addr): For windows,
+               mask off low 16 bits because Gradient DCE does things
+               wrong.
+
 Wed Mar 20 22:50:05 1996  Theodore Y. Ts'o  <tytso@dcl>
 
        * scc-proto.h (krb5_scc_skip_header): Added prototype (to fix lint
index 6c50794cfc8ffd2f67ae68fca2d59da14bb8f57d..f1bec6f34dea4ab308137cac94ae65b904b0671c 100644 (file)
@@ -208,6 +208,12 @@ krb5_scc_read_keyblock(context, id, keyblock)
 
      kret = krb5_scc_read_int32(context, id, &int32);
      CHECK(kret);
+#ifdef _WINDOWS
+     int32 &= VALID_INT_BITS;    /* Gradient does not write  correctly */     
+#else
+     if ((int32 & VALID_INT_BITS) != int32)     /* Overflow size_t??? */
+         return KRB5_CC_NOMEM;
+#endif
      keyblock->length = int32;
      if ( keyblock->length == 0 )
             return KRB5_OK;
@@ -234,12 +240,20 @@ krb5_scc_read_data(context, id, data)
    krb5_data *data;
 {
      krb5_error_code kret;
+     krb5_int32 len;
 
      data->magic = KV5M_DATA;
      data->data = 0;
 
-     kret = krb5_scc_read_int32(context, id, &data->length);
+     kret = krb5_scc_read_int32(context, id, &len);
      CHECK(kret);
+#ifdef _WINDOWS
+     len &= VALID_INT_BITS;
+#else
+     if ((len & VALID_INT_BITS) != len)
+        return KRB5_CC_NOMEM;
+#endif
+     data->length = (int) len;
 
      if (data->length == 0) {
        data->data = 0;
@@ -280,6 +294,12 @@ krb5_scc_read_addr(context, id, addr)
      
      kret = krb5_scc_read_int32(context, id, &int32);
      CHECK(kret);
+#ifdef _WINDOWS
+     int32 &= VALID_INT_BITS;  /* Gradient DCE does this wrong */
+#else
+     if ((int32 & VALID_INT_BITS) != int32)     /* Overflow int??? */
+         return KRB5_CC_NOMEM;
+#endif
      addr->length = int32;
 
      if (addr->length == 0)
@@ -449,6 +469,12 @@ krb5_scc_read_authdatum(context, id, a)
     a->ad_type = (krb5_authdatatype)ui2;
     kret = krb5_scc_read_int32(context, id, &int32);
     CHECK(kret);
+#ifdef _WINDOWS
+    int32 &= VALID_INT_BITS;
+#else
+    if ((int32 & VALID_INT_BITS) != int32)     /* Overflow int??? */
+          return KRB5_CC_NOMEM;
+#endif
     a->length = int32;
     
     if (a->length == 0 )