X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=apps%2Fopenssl.c;h=4f61006b73bf95bf0bbb11f4709980fd44d044c6;hb=c29dbb9562f275485c1266af523cd5d59311d583;hp=9ddd5364540f534bb694f382f14f6b46d1ac1b20;hpb=46c4647e3c7e5bd0ba9267091bb18677ee387f52;p=oweals%2Fopenssl.git diff --git a/apps/openssl.c b/apps/openssl.c index 9ddd536454..4f61006b73 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -59,6 +59,7 @@ #include #include #include +#define OPENSSL_C /* tells apps.h to use complete apps_startup() */ #include #include #include @@ -67,7 +68,6 @@ #include #include #define USE_SOCKETS /* needed for the _O_BINARY defs in the MS world */ -#define OPENSSL_C /* tells apps.h to use complete apps_startup() */ #include "apps.h" #include "progs.h" #include "s_apps.h" @@ -101,6 +101,8 @@ int main(int Argc, char *Argv[]) arg.data=NULL; arg.count=0; + if (getenv("OPENSSL_DEBUG_MEMORY") != NULL) + CRYPTO_malloc_debug_init(); CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); apps_startup(); @@ -201,12 +203,12 @@ end: config=NULL; } if (prog != NULL) lh_free(prog); - if (arg.data != NULL) Free(arg.data); + if (arg.data != NULL) OPENSSL_free(arg.data); ERR_remove_state(0); EVP_cleanup(); ERR_free_strings(); - + CRYPTO_mem_leaks(bio_err); if (bio_err != NULL) { @@ -236,13 +238,19 @@ static int do_cmd(LHASH *prog, int argc, char *argv[]) else if ((strncmp(argv[0],"no-",3)) == 0) { BIO *bio_stdout = BIO_new_fp(stdout,BIO_NOCLOSE); +#ifdef VMS + { + BIO *tmpbio = BIO_new(BIO_f_linebuffer()); + bio_stdout = BIO_push(tmpbio, bio_stdout); + } +#endif f.name=argv[0]+3; ret = (lh_retrieve(prog,&f) != NULL); if (!ret) BIO_printf(bio_stdout, "%s\n", argv[0]); else BIO_printf(bio_stdout, "%s\n", argv[0]+3); - BIO_free(bio_stdout); + BIO_free_all(bio_stdout); goto end; } else if ((strcmp(argv[0],"quit") == 0) || @@ -267,11 +275,17 @@ static int do_cmd(LHASH *prog, int argc, char *argv[]) else /* strcmp(argv[0],LIST_CIPHER_COMMANDS) == 0 */ list_type = FUNC_TYPE_CIPHER; bio_stdout = BIO_new_fp(stdout,BIO_NOCLOSE); +#ifdef VMS + { + BIO *tmpbio = BIO_new(BIO_f_linebuffer()); + bio_stdout = BIO_push(tmpbio, bio_stdout); + } +#endif for (fp=functions; fp->name != NULL; fp++) if (fp->type == list_type) BIO_printf(bio_stdout, "%s\n", fp->name); - BIO_free(bio_stdout); + BIO_free_all(bio_stdout); ret=0; goto end; }