diff options
author | Bruce Momjian <bruce@momjian.us> | 2001-08-17 02:59:20 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2001-08-17 02:59:20 +0000 |
commit | da45a0bdb7580b7b9cec62f6999605083dcec162 (patch) | |
tree | fd40d31c441933caf2051c68886be65ac60f0e38 /src/backend/libpq/md5.c | |
parent | a61e15a5664536896f9d3a7454962d91a13d83bd (diff) |
Add 4-byte MD5 salt.
Diffstat (limited to 'src/backend/libpq/md5.c')
-rw-r--r-- | src/backend/libpq/md5.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/libpq/md5.c b/src/backend/libpq/md5.c index 846202a7b17..76d54d50b0d 100644 --- a/src/backend/libpq/md5.c +++ b/src/backend/libpq/md5.c @@ -295,16 +295,18 @@ md5_hash(const void *buff, size_t len, char *hexsum) * puts md5(username+passwd) in buf provided buflen is at least 36 bytes * returns 1 on success, 0 on any kind of failure and sets errno accordingly */ -bool EncryptMD5(const char *passwd, const char *salt, char *buf) +bool EncryptMD5(const char *passwd, const char *salt, size_t salt_len, + char *buf) { char crypt_buf[128]; - if (strlen(salt) + strlen(passwd) > 127) + if (salt_len + strlen(passwd) > 127) return false; strcpy(buf, "md5"); memset(crypt_buf, 0, 128); - sprintf(crypt_buf,"%s%s", salt, passwd); + memcpy(crypt_buf, salt, salt_len); + memcpy(crypt_buf+salt_len, passwd, strlen(passwd)); - return md5_hash(crypt_buf, strlen(crypt_buf), buf + 3); + return md5_hash(crypt_buf, salt_len + strlen(passwd), buf + 3); } |