[patch 3/10] Fix problems with 64-bit big-endian machines
kwc at citi.umich.edu
kwc at citi.umich.edu
Mon Jul 3 18:34:05 EDT 2006
Signed-off-by: Kevin Coffman <kwc at citi.umich.edu>
Correct the definition of mech_used in the gss context to use gss_OID_desc.
This fixes problems on 64-bit machines when referencing the OID.
Also updates write_buffer function to use u_int rather than size_t when
doing calculations.
---
nfs-utils-1.0.8-kwc/utils/gssd/context_mit.c | 6 +++---
nfs-utils-1.0.8-kwc/utils/gssd/write_bytes.h | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff -puN utils/gssd/context_mit.c~gssd_64bit_bigendian utils/gssd/context_mit.c
--- nfs-utils-1.0.8/utils/gssd/context_mit.c~gssd_64bit_bigendian 2006-07-03 16:47:36.403094000 -0400
+++ nfs-utils-1.0.8-kwc/utils/gssd/context_mit.c 2006-07-03 16:47:36.692919000 -0400
@@ -86,7 +86,7 @@ typedef struct _krb5_gss_ctx_id_rec {
uint64_t seq_recv; /* gssint_uint64 */
void *seqstate;
krb5_auth_context auth_context;
- gss_buffer_desc *mech_used; /* gss_OID_desc */
+ gss_OID_desc *mech_used; /* gss_OID_desc */
/* Protocol spec revision
0 => RFC 1964 with 3DES and RC4 enhancements
1 => draft-ietf-krb-wg-gssapi-cfx-01
@@ -123,7 +123,7 @@ typedef struct _krb5_gss_ctx_id_rec {
int established;
int big_endian;
krb5_auth_context auth_context;
- gss_buffer_desc *mech_used;
+ gss_OID_desc *mech_used;
int nctypes;
krb5_cksumtype *ctypes;
} krb5_gss_ctx_id_rec, *krb5_gss_ctx_id_t;
@@ -343,7 +343,7 @@ serialize_krb5_ctx(gss_ctx_id_t ctx, gss
if (WRITE_BYTES(&p, end, kctx->endtime)) goto out_err;
word_seq_send = kctx->seq_send;
if (WRITE_BYTES(&p, end, word_seq_send)) goto out_err;
- if (write_buffer(&p, end, kctx->mech_used)) goto out_err;
+ if (write_oid(&p, end, kctx->mech_used)) goto out_err;
printerr(2, "serialize_krb5_ctx: serializing keys with "
"enctype %d and length %d\n",
diff -puN utils/gssd/write_bytes.h~gssd_64bit_bigendian utils/gssd/write_bytes.h
--- nfs-utils-1.0.8/utils/gssd/write_bytes.h~gssd_64bit_bigendian 2006-07-03 16:47:36.421076000 -0400
+++ nfs-utils-1.0.8-kwc/utils/gssd/write_bytes.h 2006-07-03 16:47:36.547949000 -0400
@@ -56,7 +56,7 @@ write_buffer(char **p, char *end, gss_bu
int len = (int)arg->length; /* make an int out of size_t */
if (WRITE_BYTES(p, end, len))
return -1;
- if (*p + arg->length > end)
+ if (*p + len > end)
return -1;
memcpy(*p, arg->value, len);
*p += len;
_
More information about the NFSv4
mailing list