summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2005-10-20 13:54:08 +0000
committerTom Lane2005-10-20 13:54:08 +0000
commit6bf12c4e4f4f8455b8f87948fcf4798f6b1aba0c (patch)
tree4565df34204f93786e482efe1963e39bab5d26ea
parent22cd3f7aa4614ee70957f419b09df983af07af67 (diff)
Clean up md5.c to make it clearer that it is a frontend-and-backend
module. Don't rely on backend palloc semantics; in fact, best to not use palloc at all, rather than #define'ing it to malloc, because that just encourages errors of omission. Bug spotted by Volkan YAZICI, but I went further than he did to fix it.
-rw-r--r--src/backend/libpq/md5.c22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/backend/libpq/md5.c b/src/backend/libpq/md5.c
index 18da995b11..916d8369e8 100644
--- a/src/backend/libpq/md5.c
+++ b/src/backend/libpq/md5.c
@@ -17,21 +17,10 @@
* $PostgreSQL$
*/
+/* This is intended to be used in both frontend and backend, so use c.h */
+#include "c.h"
-#if ! defined(FRONTEND)
-#include "postgres.h"
#include "libpq/crypt.h"
-#endif
-
-#ifdef FRONTEND
-#include "postgres_fe.h"
-#include "libpq/crypt.h"
-
-#undef palloc
-#define palloc malloc
-#undef pfree
-#define pfree free
-#endif /* FRONTEND */
/*
@@ -325,9 +314,12 @@ pg_md5_encrypt(const char *passwd, const char *salt, size_t salt_len,
char *buf)
{
size_t passwd_len = strlen(passwd);
- char *crypt_buf = palloc(passwd_len + salt_len);
+ char *crypt_buf = malloc(passwd_len + salt_len);
bool ret;
+ if (!crypt_buf)
+ return false;
+
/*
* Place salt at the end because it may be known by users trying to crack
* the MD5 output.
@@ -338,7 +330,7 @@ pg_md5_encrypt(const char *passwd, const char *salt, size_t salt_len,
strcpy(buf, "md5");
ret = pg_md5_hash(crypt_buf, passwd_len + salt_len, buf + 3);
- pfree(crypt_buf);
+ free(crypt_buf);
return ret;
}