From affd38e55a3cabbc4c64198dde71c22a94877690 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Thu, 6 Feb 2025 15:13:40 +0100 Subject: [PATCH] pgcrypto: Remove static storage class from variables Variables p, sp and ep were labeled with static storage class but are all assigned before use so they cannot carry any data across calls. Fix by removing the static label. Also while in there, make the magic variable const as it will never change. Author: Japin Li Reviewed-by: Daniel Gustafsson Reviewed-by: Tom Lane Discussion: https://postgr.es/m/ME0P300MB0445096B67ACE8CE25772F00B6F72@ME0P300MB0445.AUSP300.PROD.OUTLOOK.COM --- contrib/pgcrypto/crypt-md5.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/contrib/pgcrypto/crypt-md5.c b/contrib/pgcrypto/crypt-md5.c index d38721a1010..33f93847a42 100644 --- a/contrib/pgcrypto/crypt-md5.c +++ b/contrib/pgcrypto/crypt-md5.c @@ -33,11 +33,11 @@ _crypt_to64(char *s, unsigned long v, int n) char * px_crypt_md5(const char *pw, const char *salt, char *passwd, unsigned dstlen) { - static char *magic = "$1$"; /* This string is magic for this algorithm. - * Having it this way, we can get better later - * on */ - static char *p; - static const char *sp, + static const char *magic = "$1$"; /* This string is magic for this + * algorithm. Having it this way, we + * can get better later on */ + char *p; + const char *sp, *ep; unsigned char final[MD5_SIZE]; int sl, @@ -81,7 +81,7 @@ px_crypt_md5(const char *pw, const char *salt, char *passwd, unsigned dstlen) px_md_update(ctx, (const uint8 *) pw, strlen(pw)); /* Then our magic string */ - px_md_update(ctx, (uint8 *) magic, strlen(magic)); + px_md_update(ctx, (const uint8 *) magic, strlen(magic)); /* Then the raw salt */ px_md_update(ctx, (const uint8 *) sp, sl);