From bee9aef43bff5a913aad4a42db9b15c7a9108d55 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 3 Jul 2005 21:56:16 +0000
Subject: [PATCH] Fix memory leak in plperl_hash_from_tuple(), per report from
 Jean-Max Reymond.

---
 src/pl/plperl/plperl.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 7d0e00effe1..eaee0f79722 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -33,7 +33,7 @@
  *	  ENHANCEMENTS, OR MODIFICATIONS.
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.78 2005/06/22 16:45:51 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.79 2005/07/03 21:56:16 tgl Exp $
  *
  **********************************************************************/
 
@@ -1327,14 +1327,16 @@ plperl_hash_from_tuple(HeapTuple tuple, TupleDesc tupdesc)
 		getTypeOutputInfo(tupdesc->attrs[i]->atttypid,
 						  &typoutput, &typisvarlena);
 
-		outputstr = DatumGetCString(OidFunctionCall1(typoutput,
-													 attr));
+		outputstr = DatumGetCString(OidFunctionCall1(typoutput, attr));
 
 		sv = newSVpv(outputstr, 0);
 #if PERL_BCDVERSION >= 0x5006000L
-		if (GetDatabaseEncoding() == PG_UTF8) SvUTF8_on(sv);
+		if (GetDatabaseEncoding() == PG_UTF8)
+			SvUTF8_on(sv);
 #endif
 		hv_store(hv, attname, namelen, sv, 0);
+
+		pfree(outputstr);
 	}
 
 	return newRV_noinc((SV *) hv);
-- 
GitLab