diff options
author | Ezra Peisach <epeisach@mit.edu> | 2002-11-07 20:09:02 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 2002-11-07 20:09:02 +0000 |
commit | 35e5db4310cce8362834f56d22290e572dc1851e (patch) | |
tree | b663483f013d4d839bf89798f00049b4d4e3e4d2 /src/lib/krb5 | |
parent | d711b796ea530cab21c1bc5bb95b14ca337e34da (diff) | |
download | krb5-35e5db4310cce8362834f56d22290e572dc1851e.zip krb5-35e5db4310cce8362834f56d22290e572dc1851e.tar.gz krb5-35e5db4310cce8362834f56d22290e572dc1851e.tar.bz2 |
* asn1_k_encode.c (asn1_encode_sam_challenge_2): Test for error
returned from asn1buf_insert_oxtetstring and cleanup strctures
properly.
* asn1_k_decode.c (asn1_decode_sam_challenge_2_body): Change
sequence_of/end_sequence_of to use
sequence_of_no_tagvars/end_sequence_of_no_tagravs to avoid
shadowing variables.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14975 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5')
-rw-r--r-- | src/lib/krb5/asn.1/ChangeLog | 11 | ||||
-rw-r--r-- | src/lib/krb5/asn.1/asn1_k_decode.c | 4 | ||||
-rw-r--r-- | src/lib/krb5/asn.1/asn1_k_encode.c | 15 |
3 files changed, 24 insertions, 6 deletions
diff --git a/src/lib/krb5/asn.1/ChangeLog b/src/lib/krb5/asn.1/ChangeLog index a2fe870..81a8419 100644 --- a/src/lib/krb5/asn.1/ChangeLog +++ b/src/lib/krb5/asn.1/ChangeLog @@ -1,5 +1,16 @@ 2002-11-07 Ezra Peisach <epeisach@bu.edu> + * asn1_k_encode.c (asn1_encode_sam_challenge_2): Test for error + returned from asn1buf_insert_oxtetstring and cleanup strctures + properly. + + * asn1_k_decode.c (asn1_decode_sam_challenge_2_body): Change + sequence_of/end_sequence_of to use + sequence_of_no_tagvars/end_sequence_of_no_tagravs to avoid + shadowing variables. + +2002-11-07 Ezra Peisach <epeisach@bu.edu> + * asn1_k_encode.c (add_optstring): Add optional string only if length > 0. diff --git a/src/lib/krb5/asn.1/asn1_k_decode.c b/src/lib/krb5/asn.1/asn1_k_decode.c index f075db0..0a827b1 100644 --- a/src/lib/krb5/asn.1/asn1_k_decode.c +++ b/src/lib/krb5/asn.1/asn1_k_decode.c @@ -821,8 +821,8 @@ asn1_error_code asn1_decode_sam_challenge_2(asn1buf *buf, krb5_sam_challenge_2 * if (asn1class != CONTEXT_SPECIFIC || construction != CONSTRUCTED) return ASN1_BAD_ID; save = subbuf.next; - { sequence_of(&subbuf); - end_sequence_of(&subbuf); + { sequence_of_no_tagvars(&subbuf); + end_sequence_of_no_tagvars(&subbuf); } end = subbuf.next; if ((val->sam_challenge_2_body.data = (char *) malloc(end - save)) == NULL) diff --git a/src/lib/krb5/asn.1/asn1_k_encode.c b/src/lib/krb5/asn.1/asn1_k_encode.c index ff15d70..9226f7c 100644 --- a/src/lib/krb5/asn.1/asn1_k_encode.c +++ b/src/lib/krb5/asn.1/asn1_k_encode.c @@ -807,14 +807,21 @@ asn1_error_code asn1_encode_sam_challenge_2(asn1buf *buf, const krb5_sam_challen return ASN1_MISSING_FIELD; asn1_addfield((const krb5_checksum **) val->sam_cksum, 1, asn1_encode_sequence_of_checksum); - asn1buf_insert_octetstring(buf, val->sam_challenge_2_body.length, - (unsigned char *)val->sam_challenge_2_body.data); + retval = asn1buf_insert_octetstring(buf, val->sam_challenge_2_body.length, + (unsigned char *)val->sam_challenge_2_body.data); + if(retval){ + asn1buf_destroy(&buf); + return retval; + } sum += val->sam_challenge_2_body.length; retval = asn1_make_etag(buf, CONTEXT_SPECIFIC, 0, val->sam_challenge_2_body.length, &length); - if(retval) return retval; + if(retval) { + asn1buf_destroy(&buf); + return retval; + } sum += length; - + asn1_makeseq(); asn1_cleanup(); } |