]> granicus.if.org Git - postgresql/commitdiff
Clean up md5.c to make it clearer that it is a frontend-and-backend
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 20 Oct 2005 13:54:08 +0000 (13:54 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 20 Oct 2005 13:54:08 +0000 (13:54 +0000)
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.

src/backend/libpq/md5.c

index 753cba772e1f98ae6f4ef9b01946044e7e1db254..99e86cba5cfe007b75c0c7bf14c7d4f267ed137b 100644 (file)
  *     Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/libpq/md5.c,v 1.30 2005/10/17 16:24:19 tgl Exp $
+ *       $PostgreSQL: pgsql/src/backend/libpq/md5.c,v 1.31 2005/10/20 13:54:08 tgl Exp $
  */
 
+/* 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;
 }