Fix memory leak. The canonical X509_NAME_ENTRY STACK is reallocated rather
[openssl.git] / apps / dgst.c
index b22b008c76ac1cd81b9897374b0d06edade64ffb..96e72c6657e7e0ebc0f53b5531910f693a5ef899 100644 (file)
@@ -107,7 +107,7 @@ int MAIN(int argc, char **argv)
 #endif
        char *hmac_key=NULL;
        char *mac_name=NULL;
-       STACK *sigopts = NULL, *macopts = NULL;
+       STACK_OF(STRING) *sigopts = NULL, *macopts = NULL;
 
        apps_startup();
 
@@ -210,8 +210,8 @@ int MAIN(int argc, char **argv)
                        if (--argc < 1)
                                break;
                        if (!sigopts)
-                               sigopts = sk_new_null();
-                       if (!sigopts || !sk_push(sigopts, *(++argv)))
+                               sigopts = sk_STRING_new_null();
+                       if (!sigopts || !sk_STRING_push(sigopts, *(++argv)))
                                break;
                        }
                else if (strcmp(*argv,"-macopt") == 0)
@@ -219,8 +219,8 @@ int MAIN(int argc, char **argv)
                        if (--argc < 1)
                                break;
                        if (!macopts)
-                               macopts = sk_new_null();
-                       if (!macopts || !sk_push(macopts, *(++argv)))
+                               macopts = sk_STRING_new_null();
+                       if (!macopts || !sk_STRING_push(macopts, *(++argv)))
                                break;
                        }
                else if ((m=EVP_get_digestbyname(&((*argv)[1]))) != NULL)
@@ -372,9 +372,9 @@ int MAIN(int argc, char **argv)
                if (macopts)
                        {
                        char *macopt;
-                       for (i = 0; i < sk_num(macopts); i++)
+                       for (i = 0; i < sk_STRING_num(macopts); i++)
                                {
-                               macopt = sk_value(macopts, i);
+                               macopt = sk_STRING_value(macopts, i);
                                if (pkey_ctrl_string(mac_ctx, macopt) <= 0)
                                        {
                                        BIO_printf(bio_err,
@@ -431,9 +431,9 @@ int MAIN(int argc, char **argv)
                if (sigopts)
                        {
                        char *sigopt;
-                       for (i = 0; i < sk_num(sigopts); i++)
+                       for (i = 0; i < sk_STRING_num(sigopts); i++)
                                {
-                               sigopt = sk_value(sigopts, i);
+                               sigopt = sk_STRING_value(sigopts, i);
                                if (pkey_ctrl_string(pctx, sigopt) <= 0)
                                        {
                                        BIO_printf(bio_err,
@@ -538,9 +538,9 @@ end:
        BIO_free_all(out);
        EVP_PKEY_free(sigkey);
        if (sigopts)
-               sk_free(sigopts);
+               sk_STRING_free(sigopts);
        if (macopts)
-               sk_free(macopts);
+               sk_STRING_free(macopts);
        if(sigbuf) OPENSSL_free(sigbuf);
        if (bmd != NULL) BIO_free(bmd);
        apps_shutdown();