fix memory leak in s3_clnt.c
[openssl.git] / ssl / ssl_cert.c
index bd68730cd3723806d6c85565c771b45be58e96eb..ec2eb6139d3f68a147130c8a68e3192285628f52 100644 (file)
 
 #include <stdio.h>
 #include <sys/types.h>
-#ifndef WIN32
-#ifndef VMS
+#if !defined(WIN32) && !defined(VSM) && !defined(NeXT)
 #include <dirent.h>
 #endif
+#ifdef NeXT
+#include <sys/dir.h>
+#define dirent direct
 #endif
 #include <openssl/objects.h>
 #include <openssl/bio.h>
@@ -450,19 +452,19 @@ static void set_client_CA_list(STACK_OF(X509_NAME) **ca_list,STACK_OF(X509_NAME)
        *ca_list=list;
        }
 
-STACK *SSL_dup_CA_list(STACK *sk)
+STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk)
        {
        int i;
-       STACK *ret;
+       STACK_OF(X509_NAME) *ret;
        X509_NAME *name;
 
-       ret=sk_new_null();
-       for (i=0; i<sk_num(sk); i++)
+       ret=sk_X509_NAME_new_null();
+       for (i=0; i<sk_X509_NAME_num(sk); i++)
                {
-               name=X509_NAME_dup((X509_NAME *)sk_value(sk,i));
-               if ((name == NULL) || !sk_push(ret,(char *)name))
+               name=X509_NAME_dup(sk_X509_NAME_value(sk,i));
+               if ((name == NULL) || !sk_X509_NAME_push(ret,name))
                        {
-                       sk_pop_free(ret,X509_NAME_free);
+                       sk_X509_NAME_pop_free(ret,X509_NAME_free);
                        return(NULL);
                        }
                }