* asn1_k_encode.c (asn1_encode_sam_challenge_2): Test for error
authorEzra Peisach <epeisach@mit.edu>
Thu, 7 Nov 2002 20:09:02 +0000 (20:09 +0000)
committerEzra Peisach <epeisach@mit.edu>
Thu, 7 Nov 2002 20:09:02 +0000 (20:09 +0000)
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

src/lib/krb5/asn.1/ChangeLog
src/lib/krb5/asn.1/asn1_k_decode.c
src/lib/krb5/asn.1/asn1_k_encode.c

index a2fe87030a204533893597a33ed0b79b0a574d12..81a841966d2451222d84fba0f4617488acefdd2c 100644 (file)
@@ -1,3 +1,14 @@
+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
index f075db09425298b610412e008b0a08ac029a9cae..0a827b1607c10ca969a753516968ae678f0d9e4d 100644 (file)
@@ -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)
index ff15d706776bbbdd3c4923991c4df4a7e0720310..9226f7ca2493ee0ea5c4efefb09d2b232100d1ba 100644 (file)
@@ -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();
 }