diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2024-08-07 10:43:52 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2024-08-07 10:44:10 +0300 |
commit | a38f5f880d1e86fedf1616de5391df5f0d5e4239 (patch) | |
tree | 5356b80828c51ae1bc183478d085f45284a9e675 | |
parent | 3cc5e51ab4507b33acc82684b7d79ac43b8a6b5d (diff) | |
download | postgresql-a38f5f880d1e86fedf1616de5391df5f0d5e4239.tar.gz postgresql-a38f5f880d1e86fedf1616de5391df5f0d5e4239.zip |
Make fallback MD5 implementation thread-safe on big-endian systems
Replace a static scratch buffer with a local variable, because a
static buffer makes the function not thread-safe. This function is
used in client-code in libpq, so it needs to be thread-safe. It was
until commit b67b57a966, which replaced the implementation with the
one from pgcrypto.
Backpatch to v14, where we switched to the new implementation.
Reviewed-by: Robert Haas, Michael Paquier
Discussion: https://www.postgresql.org/message-id/dfa2015d-ad21-4802-a4cc-3850fc5fff3f@iki.fi
-rw-r--r-- | src/common/md5.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/common/md5.c b/src/common/md5.c index 4dec37705e2..078baccbdc3 100644 --- a/src/common/md5.c +++ b/src/common/md5.c @@ -150,10 +150,6 @@ static const uint8 md5_paddat[MD5_BUFLEN] = { 0, 0, 0, 0, 0, 0, 0, 0, }; -#ifdef WORDS_BIGENDIAN -static uint32 X[16]; -#endif - static void md5_calc(const uint8 *b64, pg_md5_ctx *ctx) { @@ -167,6 +163,7 @@ md5_calc(const uint8 *b64, pg_md5_ctx *ctx) #else /* 4 byte words */ /* what a brute force but fast! */ + uint32 X[16]; uint8 *y = (uint8 *) X; y[0] = b64[3]; |