summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1996-04-30 18:48:49 +0000
committerTheodore Tso <tytso@mit.edu>1996-04-30 18:48:49 +0000
commit9a079c2554aaed0c78c96f3a47a6f46c5dd3df11 (patch)
treefd8184d10ed9384696819c4b9d0336314d1d5f71 /src/lib
parent2f6b03480c40fa7b5118feb38a87b549d501b51b (diff)
downloadkrb5-9a079c2554aaed0c78c96f3a47a6f46c5dd3df11.tar.gz
krb5-9a079c2554aaed0c78c96f3a47a6f46c5dd3df11.tar.xz
krb5-9a079c2554aaed0c78c96f3a47a6f46c5dd3df11.zip
For windows, mask off low 16 bits because Gradient DCE does things
wrong. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7866 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/ccache/file/ChangeLog7
-rw-r--r--src/lib/krb5/ccache/file/fcc_read.c16
-rw-r--r--src/lib/krb5/ccache/stdio/ChangeLog7
-rw-r--r--src/lib/krb5/ccache/stdio/scc_read.c28
4 files changed, 57 insertions, 1 deletions
diff --git a/src/lib/krb5/ccache/file/ChangeLog b/src/lib/krb5/ccache/file/ChangeLog
index 9b6010664..17559ecf2 100644
--- a/src/lib/krb5/ccache/file/ChangeLog
+++ b/src/lib/krb5/ccache/file/ChangeLog
@@ -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
diff --git a/src/lib/krb5/ccache/file/fcc_read.c b/src/lib/krb5/ccache/file/fcc_read.c
index aa2cba8ea..c4ff13d20 100644
--- a/src/lib/krb5/ccache/file/fcc_read.c
+++ b/src/lib/krb5/ccache/file/fcc_read.c
@@ -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 )
diff --git a/src/lib/krb5/ccache/stdio/ChangeLog b/src/lib/krb5/ccache/stdio/ChangeLog
index 4eb60f7d5..bb5664f39 100644
--- a/src/lib/krb5/ccache/stdio/ChangeLog
+++ b/src/lib/krb5/ccache/stdio/ChangeLog
@@ -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
diff --git a/src/lib/krb5/ccache/stdio/scc_read.c b/src/lib/krb5/ccache/stdio/scc_read.c
index 6c50794cf..f1bec6f34 100644
--- a/src/lib/krb5/ccache/stdio/scc_read.c
+++ b/src/lib/krb5/ccache/stdio/scc_read.c
@@ -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 )