aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/varchar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r--src/backend/utils/adt/varchar.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index 3c58a254619..750d3dd665e 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.71 2000/11/26 11:35:23 ishii Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.72 2000/12/08 23:57:03 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -663,11 +663,17 @@ hashbpchar(PG_FUNCTION_ARGS)
BpChar *key = PG_GETARG_BPCHAR_P(0);
char *keydata;
int keylen;
+ Datum result;
keydata = VARDATA(key);
keylen = bcTruelen(key);
- return hash_any(keydata, keylen);
+ result = hash_any(keydata, keylen);
+
+ /* Avoid leaking memory for toasted inputs */
+ PG_FREE_IF_COPY(key, 0);
+
+ return result;
}