]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
use all pre-allocated MD5 ctxs to reduce OpenSSL malloc/free noise
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 22 Feb 2022 21:46:54 +0000 (16:46 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 22 Feb 2022 21:46:54 +0000 (16:46 -0500)
src/protocols/radius/decode.c
src/protocols/radius/encode.c

index 9879186dca1269c9785755f68bc88acff0a73cec..085cfcd06ed735fc005700065cb4227794d45b0d 100644 (file)
@@ -101,7 +101,7 @@ ssize_t fr_radius_decode_tunnel_password(uint8_t *passwd, size_t *pwlen,
         */
        secretlen = talloc_array_length(secret) - 1;
 
-       md5_ctx = fr_md5_ctx_alloc(false);
+       md5_ctx = fr_md5_ctx_alloc(true);
        md5_ctx_old = fr_md5_ctx_alloc(true);
 
        fr_md5_update(md5_ctx, (uint8_t const *) secret, secretlen);
@@ -212,7 +212,7 @@ ssize_t fr_radius_decode_password(char *passwd, size_t pwlen, char const *secret
         */
        secretlen = talloc_array_length(secret) - 1;
 
-       md5_ctx = fr_md5_ctx_alloc(false);
+       md5_ctx = fr_md5_ctx_alloc(true);
        md5_ctx_old = fr_md5_ctx_alloc(true);
 
        fr_md5_update(md5_ctx, (uint8_t const *) secret, secretlen);
index 7a0dc35d54eade42c0aab5a16e50dba9c55a9980..665e5f2b3171772964fc7d4e9b439e3aadc16327 100644 (file)
@@ -98,7 +98,7 @@ static ssize_t encode_password(fr_dbuff_t *dbuff, fr_dbuff_marker_t *input, size
                len &= ~0x0f;
        }
 
-       md5_ctx = fr_md5_ctx_alloc(false);
+       md5_ctx = fr_md5_ctx_alloc(true);
        md5_ctx_old = fr_md5_ctx_alloc(true);
 
        fr_md5_update(md5_ctx, (uint8_t const *) secret, talloc_array_length(secret) - 1);
@@ -198,7 +198,7 @@ static ssize_t encode_tunnel_password(fr_dbuff_t *dbuff, fr_dbuff_marker_t *in,
        tpasswd[1] = r & 0xff;
        tpasswd[2] = inlen;     /* length of the password string */
 
-       md5_ctx = fr_md5_ctx_alloc(false);
+       md5_ctx = fr_md5_ctx_alloc(true);
        md5_ctx_old = fr_md5_ctx_alloc(true);
 
        fr_md5_update(md5_ctx, (uint8_t const *) packet_ctx->secret, talloc_array_length(packet_ctx->secret) - 1);