Fix a typo in apps/pkcs12.c which was using the wrong part of
[openssl.git] / apps / pkcs12.c
index d7b5b47603925b31bc646f21a7105b1f0ed6007b..070993de308ab6ef210802308e27d0d61537255c 100644 (file)
@@ -197,7 +197,7 @@ int MAIN(int argc, char **argv)
                } else if (!strcmp (*args, "-caname")) {
                    if (args[1]) {
                        args++; 
-                       if (!canames) canames = sk_new(NULL);
+                       if (!canames) canames = sk_new_null();
                        sk_push(canames, *args);
                    } else badarg = 1;
                } else if (!strcmp (*args, "-in")) {
@@ -404,7 +404,7 @@ int MAIN(int argc, char **argv)
        CRYPTO_push_info("reading certs from input");
 #endif
 
-       certs = sk_X509_new(NULL);
+       certs = sk_X509_new_null();
 
        /* Load in all certs in input file */
        if(!cert_load(in, certs)) {
@@ -426,6 +426,7 @@ int MAIN(int argc, char **argv)
                }
        }
        if(!keyidlen) {
+               ucert = NULL;
                BIO_printf(bio_err, "No certificate matches private key\n");
                goto export_end;
        }
@@ -435,7 +436,7 @@ int MAIN(int argc, char **argv)
        CRYPTO_push_info("reading certs from certfile");
 #endif
 
-       bags = sk_PKCS12_SAFEBAG_new (NULL);
+       bags = sk_PKCS12_SAFEBAG_new_null ();
 
        /* Add any more certificates asked for */
        if (certsin) {
@@ -501,6 +502,8 @@ int MAIN(int argc, char **argv)
        }
        sk_X509_pop_free(certs, X509_free);
        certs = NULL;
+       /* ucert is part of certs so it is already freed */
+       ucert = NULL;
 
 #ifdef CRYPTO_MDEBUG
        CRYPTO_pop_info();
@@ -524,7 +527,7 @@ int MAIN(int argc, char **argv)
                goto export_end;
        }
 
-       safes = sk_PKCS7_new (NULL);
+       safes = sk_PKCS7_new_null ();
        sk_PKCS7_push (safes, authsafe);
 
 #ifdef CRYPTO_MDEBUG
@@ -540,7 +543,7 @@ int MAIN(int argc, char **argv)
        p8 = NULL;
         if (name) PKCS12_add_friendlyname (bag, name, -1);
        PKCS12_add_localkeyid (bag, keyid, keyidlen);
-       bags = sk_PKCS12_SAFEBAG_new(NULL);
+       bags = sk_PKCS12_SAFEBAG_new_null();
        sk_PKCS12_SAFEBAG_push (bags, bag);
 
 #ifdef CRYPTO_MDEBUG
@@ -588,6 +591,7 @@ int MAIN(int argc, char **argv)
        if (certs) sk_X509_pop_free(certs, X509_free);
        if (safes) sk_PKCS7_pop_free(safes, PKCS7_free);
        if (bags) sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free);
+       if (ucert) X509_free(ucert);
 
 #ifdef CRYPTO_MDEBUG
        CRYPTO_pop_info();
@@ -876,14 +880,14 @@ int print_attribs (BIO *out, STACK_OF(X509_ATTRIBUTE) *attrlst, char *name)
                                break;
 
                                case V_ASN1_OCTET_STRING:
-                               hex_prin(out, av->value.bit_string->data,
-                                       av->value.bit_string->length);
+                               hex_prin(out, av->value.octet_string->data,
+                                       av->value.octet_string->length);
                                BIO_printf(out, "\n");  
                                break;
 
                                case V_ASN1_BIT_STRING:
-                               hex_prin(out, av->value.octet_string->data,
-                                       av->value.octet_string->length);
+                               hex_prin(out, av->value.bit_string->data,
+                                       av->value.bit_string->length);
                                BIO_printf(out, "\n");  
                                break;