Fix memory leak in plperl_hash_from_tuple(), per report from Jean-Max Reymond.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 3 Jul 2005 21:56:27 +0000 (21:56 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 3 Jul 2005 21:56:27 +0000 (21:56 +0000)
src/pl/plperl/plperl.c

index 406dea4a51b96a1b68d186991954ef8e4ab9eb63..6f41f0f3cdc02c041f64123a2221edb03f29cdc2 100644 (file)
@@ -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);