correct NEWS
[openssl.git] / apps / asn1pars.c
index 305db1590359068f9e7360cbcd43a21faf5d94b6..305cdfc6af3069a95928539ac5f686078fbd21f8 100644 (file)
@@ -56,7 +56,7 @@
  * [including the GNU Public Licence.]
  */
 
-/* A nice addition from Dr Stephen Henson <shenson@bigfoot.com> to 
+/* A nice addition from Dr Stephen Henson <steve@openssl.org> to 
  * add the -strparse option which parses nested binary structures
  */
 
@@ -196,7 +196,7 @@ int MAIN(int argc, char **argv)
 bad:
                BIO_printf(bio_err,"%s [options] <infile\n",prog);
                BIO_printf(bio_err,"where options are\n");
-               BIO_printf(bio_err," -inform arg   input format - one of DER TXT PEM\n");
+               BIO_printf(bio_err," -inform arg   input format - one of DER PEM\n");
                BIO_printf(bio_err," -in arg       input file\n");
                BIO_printf(bio_err," -out arg      output file (output format is always DER\n");
                BIO_printf(bio_err," -noout arg    don't produce any output\n");
@@ -309,6 +309,7 @@ bad:
                for (i=0; i<sk_num(osk); i++)
                        {
                        ASN1_TYPE *atmp;
+                       int typ;
                        j=atoi(sk_value(osk,i));
                        if (j == 0)
                                {
@@ -327,6 +328,15 @@ bad:
                                ERR_print_errors(bio_err);
                                goto end;
                                }
+                       typ = ASN1_TYPE_get(at);
+                       if ((typ == V_ASN1_OBJECT)
+                               || (typ == V_ASN1_NULL))
+                               {
+                               BIO_printf(bio_err, "Can't parse %s type\n",
+                                       typ == V_ASN1_NULL ? "NULL" : "OBJECT");
+                               ERR_print_errors(bio_err);
+                               goto end;
+                               }
                        /* hmm... this is a little evil but it works */
                        tmpbuf=at->value.asn1_string->data;
                        tmplen=at->value.asn1_string->length;
@@ -398,6 +408,7 @@ static int do_generate(BIO *bio, char *genstr, char *genconf, BUF_MEM *buf)
 
        atyp = ASN1_generate_nconf(genstr, cnf);
        NCONF_free(cnf);
+       cnf = NULL;
 
        if (!atyp)
                return -1;