diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2003-12-16 19:21:49 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2003-12-16 19:21:49 +0000 |
| commit | 0ebeed464fc17f5912694b8942d8420dca15d420 (patch) | |
| tree | f4b1564c44c07054629147c5d09c6f8f66db4179 /src | |
| parent | d09898c3610a73be61b3879550052be30190d3a5 (diff) | |
| download | krb5-0ebeed464fc17f5912694b8942d8420dca15d420.tar.gz krb5-0ebeed464fc17f5912694b8942d8420dca15d420.tar.xz krb5-0ebeed464fc17f5912694b8942d8420dca15d420.zip | |
* conv_creds.c (krb5int_encode_v4tkt): Zero out unused parts of ticket. Use a
temorary in case krb5_int32 isn't "int".
(decode_v4tkt): Use a temorary in case krb5_int32 isn't "int".
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15936 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/krb5/krb/ChangeLog | 6 | ||||
| -rw-r--r-- | src/lib/krb5/krb/conv_creds.c | 16 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog index 11e840b6b..0a1ada7fb 100644 --- a/src/lib/krb5/krb/ChangeLog +++ b/src/lib/krb5/krb/ChangeLog @@ -1,3 +1,9 @@ +2003-12-16 Ken Raeburn <raeburn@mit.edu> + + * conv_creds.c (krb5int_encode_v4tkt): Zero out unused parts of + ticket. Use a temorary in case krb5_int32 isn't "int". + (decode_v4tkt): Use a temorary in case krb5_int32 isn't "int". + 2003-12-13 Ken Raeburn <raeburn@mit.edu> * mk_req_ext.c (krb5int_generate_and_save_subkey): New function, diff --git a/src/lib/krb5/krb/conv_creds.c b/src/lib/krb5/krb/conv_creds.c index 3a4e66dc5..6d4c109f1 100644 --- a/src/lib/krb5/krb/conv_creds.c +++ b/src/lib/krb5/krb/conv_creds.c @@ -186,14 +186,19 @@ int krb5int_encode_v4tkt(v4tkt, buf, encoded_len) unsigned int *encoded_len; { int buflen, ret; + krb5_int32 temp; buflen = *encoded_len; - if ((ret = encode_int32(&buf, &buflen, &v4tkt->length))) + if (v4tkt->length < MAX_KTXT_LEN) + memset(v4tkt->dat + v4tkt->length, 0, MAX_KTXT_LEN - v4tkt->length); + temp = v4tkt->length; + if ((ret = encode_int32(&buf, &buflen, &temp))) return ret; if ((ret = encode_bytes(&buf, &buflen, (char *)v4tkt->dat, MAX_KTXT_LEN))) return ret; - if ((ret = encode_int32(&buf, &buflen, (krb5_int32 *) &v4tkt->mbz))) + temp = v4tkt->mbz; + if ((ret = encode_int32(&buf, &buflen, &temp))) return ret; *encoded_len -= buflen; @@ -236,14 +241,17 @@ static int decode_v4tkt(v4tkt, buf, encoded_len) unsigned int *encoded_len; { int buflen, ret; + krb5_int32 temp; buflen = *encoded_len; - if ((ret = decode_int32(&buf, &buflen, &v4tkt->length))) + if ((ret = decode_int32(&buf, &buflen, &temp))) return ret; + v4tkt->length = temp; if ((ret = decode_bytes(&buf, &buflen, (char *)v4tkt->dat, MAX_KTXT_LEN))) return ret; - if ((ret = decode_int32(&buf, &buflen, (krb5_int32 *) &v4tkt->mbz))) + if ((ret = decode_int32(&buf, &buflen, &temp))) return ret; + v4tkt->mbz = temp; *encoded_len -= buflen; return 0; } |
