Fix datarace reported by valgrind/helgrind
authorRussell Coker <russell@coker.com.au>
Thu, 25 Jun 2009 05:59:32 +0000 (15:59 +1000)
committerKurt Roeckx <kurt@roeckx.be>
Mon, 10 Nov 2014 17:35:50 +0000 (18:35 +0100)
This doesn't really fix the datarace but changes it so it can only happens
once. This isn't really a problem since we always just set it to the same
value. We now just stop writing it after the first time.

PR3584, https://bugs.debian.org/534534

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/mem.c

index 1cc62eafd1221387fb000118d12449c2938a380a..01052cfa38e9a562a4301cce3bd6a36a9877d91a 100644 (file)
@@ -255,10 +255,12 @@ void *CRYPTO_malloc_locked(int num, const char *file, int line)
 
        if (num <= 0) return NULL;
 
 
        if (num <= 0) return NULL;
 
-       allow_customize = 0;
+       if(allow_customize)
+               allow_customize = 0;
        if (malloc_debug_func != NULL)
                {
        if (malloc_debug_func != NULL)
                {
-               allow_customize_debug = 0;
+               if(allow_customize_debug)
+                       allow_customize_debug = 0;
                malloc_debug_func(NULL, num, file, line, 0);
                }
        ret = malloc_locked_ex_func(num,file,line);
                malloc_debug_func(NULL, num, file, line, 0);
                }
        ret = malloc_locked_ex_func(num,file,line);
@@ -299,10 +301,12 @@ void *CRYPTO_malloc(int num, const char *file, int line)
 
        if (num <= 0) return NULL;
 
 
        if (num <= 0) return NULL;
 
-       allow_customize = 0;
+       if(allow_customize)
+               allow_customize = 0;
        if (malloc_debug_func != NULL)
                {
        if (malloc_debug_func != NULL)
                {
-               allow_customize_debug = 0;
+               if(allow_customize_debug)
+                       allow_customize_debug = 0;
                malloc_debug_func(NULL, num, file, line, 0);
                }
        ret = malloc_ex_func(num,file,line);
                malloc_debug_func(NULL, num, file, line, 0);
                }
        ret = malloc_ex_func(num,file,line);