Fix apps/openssl.c and ssl/ssltest.c so that they use
authorBodo Möller <bodo@openssl.org>
Mon, 10 Sep 2001 09:50:30 +0000 (09:50 +0000)
committerBodo Möller <bodo@openssl.org>
Mon, 10 Sep 2001 09:50:30 +0000 (09:50 +0000)
CRYPTO_set_mem_debug_options() instead of CRYPTO_dbg_set_options(),
which is the default implementation of the former and should usually
not be directly used by applications (at least if we assume that the
options accepted by the default implementation will also be meaningful
to any other implementations).

Also fix apps/openssl.c and ssl/ssltest such that environment variable
setting 'OPENSSL_DEBUG_MEMORY=off' actively disables the compiled-in
library defaults (i.e. such that CRYPTO_MDEBUG is ignored in this
case).

apps/openssl.c
crypto/crypto.h
ssl/ssltest.c

index f8d4ac69d6d596e0789cc1f9932e69ea79e16cdc..9a5e37eac7fce9ae6ba9c78d109a9410954bc84a 100644 (file)
@@ -227,12 +227,17 @@ int main(int Argc, char *Argv[])
        arg.data=NULL;
        arg.count=0;
 
-       if (getenv("OPENSSL_DEBUG_MEMORY") != NULL)
+       if (getenv("OPENSSL_DEBUG_MEMORY") != NULL) /* if not defined, use compiled-in library defaults */
                {
                if (!(0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off")))
                        {
                        CRYPTO_malloc_debug_init();
-                       CRYPTO_dbg_set_options(V_CRYPTO_MDEBUG_ALL);
+                       CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL);
+                       }
+               else
+                       {
+                       /* OPENSSL_DEBUG_MEMORY=off */
+                       CRYPTO_set_mem_debug_functions(0, 0, 0, 0, 0);
                        }
                }
        CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
index 9a642ab9626fc02c3f5b0ed1979a82c3594657f7..fc6ff860afc6ada3a1e7bc100c8e833441a778e5 100644 (file)
@@ -391,6 +391,9 @@ int CRYPTO_push_info_(const char *info, const char *file, int line);
 int CRYPTO_pop_info(void);
 int CRYPTO_remove_all_info(void);
 
+
+/* Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro;
+ * used as default in CRYPTO_MDEBUG compilations): */
 /* The last argument has the following significance:
  *
  * 0:  called before the actual memory allocation has taken place
@@ -399,18 +402,18 @@ int CRYPTO_remove_all_info(void);
 void CRYPTO_dbg_malloc(void *addr,int num,const char *file,int line,int before_p);
 void CRYPTO_dbg_realloc(void *addr1,void *addr2,int num,const char *file,int line,int before_p);
 void CRYPTO_dbg_free(void *addr,int before_p);
-
 /* Tell the debugging code about options.  By default, the following values
  * apply:
  *
- * 0:  Clear all options.
- * 1:  Set the "Show Time" option.
- * 2:  Set the "Show Thread Number" option.
- * 3:  1 + 2
+ * 0:                           Clear all options.
+ * V_CRYPTO_MDEBUG_TIME (1):    Set the "Show Time" option.
+ * V_CRYPTO_MDEBUG_THREAD (2):  Set the "Show Thread Number" option.
+ * V_CRYPTO_MDEBUG_ALL (3):     1 + 2
  */
 void CRYPTO_dbg_set_options(long bits);
 long CRYPTO_dbg_get_options(void);
 
+
 #ifndef OPENSSL_NO_FP_API
 void CRYPTO_mem_leaks_fp(FILE *);
 #endif
index 9ba560701c039c2e412a7a569e9ecc7167c28e9f..0592e6c2a8e467699161279fabff7c6f032d77f6 100644 (file)
@@ -366,7 +366,12 @@ int main(int argc, char *argv[])
        if (!((getenv("OPENSSL_DEBUG_MEMORY") != NULL) && (0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off"))))
                {
                CRYPTO_malloc_debug_init();
-               CRYPTO_dbg_set_options(V_CRYPTO_MDEBUG_ALL);
+               CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL);
+               }
+       else
+               {
+               /* OPENSSL_DEBUG_MEMORY=off */
+               CRYPTO_set_mem_debug_functions(0, 0, 0, 0, 0);
                }
        CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);