[openssl-commits] [openssl] master update

Rich Salz rsalz at openssl.org
Tue Dec 22 14:11:25 UTC 2015


The branch master has been updated
       via  4fae386cb0563a0c05c2817a5ccb3c18e6d62d8d (commit)
      from  c99de0533debc8a6ed08b47b414bdea19457eafd (commit)


- Log -----------------------------------------------------------------
commit 4fae386cb0563a0c05c2817a5ccb3c18e6d62d8d
Author: Rich Salz <rsalz at akamai.com>
Date:   Wed Dec 16 23:02:47 2015 -0500

    Cleanup CRYPTO_{push,pop}_info
    
    Rename to OPENSSL_mem_debug_{push,pop}.
    Remove simple calls; keep only calls used in recursive functions.
    Ensure we always push, to simplify so that we can always pop
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 crypto/asn1/tasn_new.c   | 25 +++++++++----------------
 crypto/bio/b_print.c     |  2 --
 crypto/err/err.c         |  4 ----
 crypto/mem_dbg.c         | 24 ++++--------------------
 include/openssl/crypto.h | 11 ++++++-----
 util/libeay.num          |  6 +++---
 6 files changed, 22 insertions(+), 50 deletions(-)

diff --git a/crypto/asn1/tasn_new.c b/crypto/asn1/tasn_new.c
index 668f641..9362ca2 100644
--- a/crypto/asn1/tasn_new.c
+++ b/crypto/asn1/tasn_new.c
@@ -103,8 +103,7 @@ int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
         asn1_cb = 0;
 
 #ifdef CRYPTO_MDEBUG
-    if (it->sname)
-        CRYPTO_push_info(it->sname);
+    OPENSSL_mem_debug_push(it->sname ? it->sname : "asn1_item_embed_new");
 #endif
 
     switch (it->itype) {
@@ -137,8 +136,7 @@ int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
                 goto auxerr;
             if (i == 2) {
 #ifdef CRYPTO_MDEBUG
-                if (it->sname)
-                    CRYPTO_pop_info();
+                OPENSSL_mem_debug_pop();
 #endif
                 return 1;
             }
@@ -163,8 +161,7 @@ int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
                 goto auxerr;
             if (i == 2) {
 #ifdef CRYPTO_MDEBUG
-                if (it->sname)
-                    CRYPTO_pop_info();
+                OPENSSL_mem_debug_pop();
 #endif
                 return 1;
             }
@@ -188,16 +185,14 @@ int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
         break;
     }
 #ifdef CRYPTO_MDEBUG
-    if (it->sname)
-        CRYPTO_pop_info();
+    OPENSSL_mem_debug_pop();
 #endif
     return 1;
 
  memerr:
     ASN1err(ASN1_F_ASN1_ITEM_EMBED_NEW, ERR_R_MALLOC_FAILURE);
 #ifdef CRYPTO_MDEBUG
-    if (it->sname)
-        CRYPTO_pop_info();
+    OPENSSL_mem_debug_pop();
 #endif
     return 0;
 
@@ -205,8 +200,7 @@ int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
     ASN1err(ASN1_F_ASN1_ITEM_EMBED_NEW, ASN1_R_AUX_ERROR);
     ASN1_item_ex_free(pval, it);
 #ifdef CRYPTO_MDEBUG
-    if (it->sname)
-        CRYPTO_pop_info();
+    OPENSSL_mem_debug_pop();
 #endif
     return 0;
 
@@ -266,8 +260,8 @@ static int asn1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
         return 1;
     }
 #ifdef CRYPTO_MDEBUG
-    if (tt->field_name)
-        CRYPTO_push_info(tt->field_name);
+    OPENSSL_mem_debug_push(tt->field_name
+            ? tt->field_name : "asn1_template_new");
 #endif
     /* If SET OF or SEQUENCE OF, its a STACK */
     if (tt->flags & ASN1_TFLG_SK_MASK) {
@@ -286,8 +280,7 @@ static int asn1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
     ret = asn1_item_embed_new(pval, it, embed);
  done:
 #ifdef CRYPTO_MDEBUG
-    if (it->sname)
-        CRYPTO_pop_info();
+    OPENSSL_mem_debug_pop();
 #endif
     return ret;
 }
diff --git a/crypto/bio/b_print.c b/crypto/bio/b_print.c
index f82b078..e0855a6 100644
--- a/crypto/bio/b_print.c
+++ b/crypto/bio/b_print.c
@@ -767,7 +767,6 @@ int BIO_vprintf(BIO *bio, const char *format, va_list args)
     int ignored;
 
     dynbuf = NULL;
-    CRYPTO_push_info("doapr()");
     _dopr(&hugebufp, &dynbuf, &hugebufsize, &retlen, &ignored, format, args);
     if (dynbuf) {
         ret = BIO_write(bio, dynbuf, (int)retlen);
@@ -775,7 +774,6 @@ int BIO_vprintf(BIO *bio, const char *format, va_list args)
     } else {
         ret = BIO_write(bio, hugebuf, (int)retlen);
     }
-    CRYPTO_pop_info();
     return (ret);
 }
 
diff --git a/crypto/err/err.c b/crypto/err/err.c
index 236f8ac..e487e98 100644
--- a/crypto/err/err.c
+++ b/crypto/err/err.c
@@ -276,9 +276,7 @@ static LHASH_OF(ERR_STRING_DATA) *get_hash(int create, int lockit)
     if (lockit)
         CRYPTO_w_lock(CRYPTO_LOCK_ERR);
     if (!int_error_hash && create) {
-        CRYPTO_push_info("get_hash (err.c)");
         int_error_hash = lh_ERR_STRING_DATA_new();
-        CRYPTO_pop_info();
     }
     if (int_error_hash != NULL)
         ret = int_error_hash;
@@ -323,9 +321,7 @@ static LHASH_OF(ERR_STATE) *int_thread_get(int create, int lockit)
     if (lockit)
         CRYPTO_w_lock(CRYPTO_LOCK_ERR);
     if (!int_thread_hash && create) {
-        CRYPTO_push_info("int_thread_get (err.c)");
         int_thread_hash = lh_ERR_STATE_new();
-        CRYPTO_pop_info();
     }
     if (int_thread_hash != NULL) {
         int_thread_hash_references++;
diff --git a/crypto/mem_dbg.c b/crypto/mem_dbg.c
index 06d3f67..924652a 100644
--- a/crypto/mem_dbg.c
+++ b/crypto/mem_dbg.c
@@ -145,9 +145,8 @@ typedef struct app_mem_info_st
  * For application-defined information (static C-string `info')
  * to be displayed in memory leak list.
  * Each thread has its own stack.  For applications, there is
- *   CRYPTO_push_info("...")     to push an entry,
- *   CRYPTO_pop_info()           to pop an entry,
- *   CRYPTO_remove_all_info()    to pop all entries.
+ *   OPENSSL_mem_debug_push("...")     to push an entry,
+ *   OPENSSL_mem_debug_pop()     to pop an entry,
  */
 {
     CRYPTO_THREADID threadid;
@@ -384,7 +383,7 @@ static APP_INFO *pop_info(void)
     return (ret);
 }
 
-int CRYPTO_push_info_(const char *info, const char *file, int line)
+int CRYPTO_mem_debug_push(const char *info, const char *file, int line)
 {
     APP_INFO *ami, *amim;
     int ret = 0;
@@ -420,7 +419,7 @@ int CRYPTO_push_info_(const char *info, const char *file, int line)
     return (ret);
 }
 
-int CRYPTO_pop_info(void)
+int CRYPTO_mem_debug_pop(void)
 {
     int ret = 0;
 
@@ -435,21 +434,6 @@ int CRYPTO_pop_info(void)
     return (ret);
 }
 
-int CRYPTO_remove_all_info(void)
-{
-    int ret = 0;
-
-    if (is_MemCheck_on()) {     /* _must_ be true */
-        MemCheck_off();         /* obtain MALLOC2 lock */
-
-        while (pop_info() != NULL)
-            ret++;
-
-        MemCheck_on();          /* release MALLOC2 lock */
-    }
-    return (ret);
-}
-
 static unsigned long break_order_num = 0;
 void CRYPTO_dbg_malloc(void *addr, size_t num, const char *file, int line,
                        int before_p)
diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h
index 70feb7f..e71214e 100644
--- a/include/openssl/crypto.h
+++ b/include/openssl/crypto.h
@@ -507,11 +507,12 @@ void OPENSSL_cleanse(void *ptr, size_t len);
 void CRYPTO_set_mem_debug_options(long bits);
 long CRYPTO_get_mem_debug_options(void);
 
-# define CRYPTO_push_info(info) \
-        CRYPTO_push_info_(info, __FILE__, __LINE__);
-int CRYPTO_push_info_(const char *info, const char *file, int line);
-int CRYPTO_pop_info(void);
-int CRYPTO_remove_all_info(void);
+# define OPENSSL_mem_debug_push(info) \
+        CRYPTO_mem_debug_push(info, __FILE__, __LINE__)
+# define OPENSSL_mem_debug_pop() \
+        CRYPTO_mem_debug_pop()
+int CRYPTO_mem_debug_push(const char *info, const char *file, int line);
+int CRYPTO_mem_debug_pop(void);
 
 /*
  * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro;
diff --git a/util/libeay.num b/util/libeay.num
index 698c938..cc1aa71 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -1680,12 +1680,12 @@ PKCS7_get_smimecap                      2154	1_1_0	EXIST::FUNCTION:
 PKCS7_sign                              2155	1_1_0	EXIST::FUNCTION:
 PKCS7_add_attrib_smimecap               2156	1_1_0	EXIST::FUNCTION:
 CRYPTO_dbg_set_options                  2157	1_1_0	EXIST::FUNCTION:
-CRYPTO_remove_all_info                  2158	1_1_0	EXIST::FUNCTION:
+CRYPTO_remove_all_info                  2158	1_1_0	NOEXIST::FUNCTION:
 CRYPTO_get_mem_debug_functions          2159	1_1_0	EXIST::FUNCTION:
 CRYPTO_is_mem_check_on                  2160	1_1_0	EXIST::FUNCTION:
 CRYPTO_set_mem_debug_functions          2161	1_1_0	EXIST::FUNCTION:
-CRYPTO_pop_info                         2162	1_1_0	EXIST::FUNCTION:
-CRYPTO_push_info_                       2163	1_1_0	EXIST::FUNCTION:
+CRYPTO_mem_debug_pop                    2162	1_1_0	EXIST::FUNCTION:
+CRYPTO_mem_debug_push                   2163	1_1_0	EXIST::FUNCTION:
 CRYPTO_set_mem_debug_options            2164	1_1_0	EXIST::FUNCTION:
 PEM_write_PKCS8PrivateKey_nid           2165	1_1_0	EXIST::FUNCTION:STDIO
 PEM_write_bio_PKCS8PrivateKey_nid       2166	1_1_0	EXIST:!VMS:FUNCTION:


More information about the openssl-commits mailing list