[openssl-commits] [openssl] master update

Rich Salz rsalz at openssl.org
Tue Mar 6 18:22:43 UTC 2018


The branch master has been updated
       via  41aede863b76202347c2d5e2c2666428084f9203 (commit)
      from  ce3dcdc9fe11e4d262f00633a139b2ee1d2ff8a0 (commit)


- Log -----------------------------------------------------------------
commit 41aede863b76202347c2d5e2c2666428084f9203
Author: knekritz <knekritz at fb.com>
Date:   Tue Mar 6 13:21:49 2018 -0500

    Avoid unconditional store in CRYPTO_malloc.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>
    Reviewed-by: Rich Salz <rsalz at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/5372)

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

Summary of changes:
 crypto/mem.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/crypto/mem.c b/crypto/mem.c
index b3f7a1f..3364467 100644
--- a/crypto/mem.c
+++ b/crypto/mem.c
@@ -201,7 +201,14 @@ void *CRYPTO_malloc(size_t num, const char *file, int line)
         return NULL;
 
     FAILTEST();
-    allow_customize = 0;
+    if (allow_customize) {
+        /*
+         * Disallow customization after the first allocation. We only set this
+         * if necessary to avoid a store to the same cache line on every
+         * allocation.
+         */
+        allow_customize = 0;
+    }
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
     if (call_malloc_debug) {
         CRYPTO_mem_debug_malloc(NULL, num, 0, file, line);
@@ -243,7 +250,6 @@ void *CRYPTO_realloc(void *str, size_t num, const char *file, int line)
         return NULL;
     }
 
-    allow_customize = 0;
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
     if (call_malloc_debug) {
         void *ret;


More information about the openssl-commits mailing list