new option "openssl ciphers -V"
[openssl.git] / apps / openssl.c
index 895d8f76b24f5cedd8110e09bb36e7a92eb39176..02d86d546df3e8198bf7d70d18d0aef2ce9281b1 100644 (file)
 #include <openssl/x509.h>
 #include <openssl/pem.h>
 #include <openssl/ssl.h>
+#ifndef OPENSSL_NO_ENGINE
 #include <openssl/engine.h>
+#endif
 #define USE_SOCKETS /* needed for the _O_BINARY defs in the MS world */
 #include "progs.h"
 #include "s_apps.h"
@@ -161,7 +163,7 @@ static void lock_dbg_cb(int mode, int type, const char *file, int line)
                goto err;
                }
 
-       if (type < 0 || type > CRYPTO_NUM_LOCKS)
+       if (type < 0 || type >= CRYPTO_NUM_LOCKS)
                {
                errstr = "type out of bounds";
                goto err;
@@ -218,7 +220,8 @@ int main(int Argc, char *Argv[])
 #define PROG_NAME_SIZE 39
        char pname[PROG_NAME_SIZE+1];
        FUNCTION f,*fp;
-       MS_STATIC char *prompt,buf[1024];
+       MS_STATIC const char *prompt;
+       MS_STATIC char buf[1024];
        char *to_free=NULL;
        int n,i,ret=0;
        int argc;
@@ -229,6 +232,10 @@ int main(int Argc, char *Argv[])
        arg.data=NULL;
        arg.count=0;
 
+       if (bio_err == NULL)
+               if ((bio_err=BIO_new(BIO_s_file())) != NULL)
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
+
        if (getenv("OPENSSL_DEBUG_MEMORY") != NULL) /* if not defined, use compiled-in library defaults */
                {
                if (!(0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off")))
@@ -253,10 +260,6 @@ int main(int Argc, char *Argv[])
 
        apps_startup();
 
-       if (bio_err == NULL)
-               if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
-
        /* Lets load up our environment a little */
        p=getenv("OPENSSL_CONF");
        if (p == NULL)
@@ -358,7 +361,7 @@ end:
                BIO_free(bio_err);
                bio_err=NULL;
                }
-       EXIT(ret);
+       OPENSSL_EXIT(ret);
        }
 
 #define LIST_STANDARD_COMMANDS "list-standard-commands"
@@ -486,7 +489,7 @@ static LHASH *prog_init(void)
        {
        LHASH *ret;
        FUNCTION *f;
-       int i;
+       size_t i;
 
        /* Purely so it looks nice when the user hits ? */
        for(i=0,f=functions ; f->name != NULL ; ++f,++i)
@@ -504,12 +507,12 @@ static LHASH *prog_init(void)
 /* static int MS_CALLBACK cmp(FUNCTION *a, FUNCTION *b) */
 static int MS_CALLBACK cmp(const void *a_void, const void *b_void)
        {
-       return(strncmp(((FUNCTION *)a_void)->name,
-                       ((FUNCTION *)b_void)->name,8));
+       return(strncmp(((const FUNCTION *)a_void)->name,
+                       ((const FUNCTION *)b_void)->name,8));
        }
 
 /* static unsigned long MS_CALLBACK hash(FUNCTION *a) */
 static unsigned long MS_CALLBACK hash(const void *a_void)
        {
-       return(lh_strhash(((FUNCTION *)a_void)->name));
+       return(lh_strhash(((const FUNCTION *)a_void)->name));
        }