Remove incorrect (and ill-advised anyway) pfree's in pg_convert_from and
pg_convert_to. Per bug #3866 from Andrew Gilligan.
This commit is contained in:
parent
ceb9360067
commit
a9742f123c
@ -4,7 +4,7 @@
|
||||
* (currently mule internal code (mic) is used)
|
||||
* Tatsuo Ishii
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.68 2007/11/15 21:14:40 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.69 2008/01/09 23:43:54 tgl Exp $
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
@ -301,8 +301,8 @@ pg_convert_to(PG_FUNCTION_ARGS)
|
||||
{
|
||||
Datum string = PG_GETARG_DATUM(0);
|
||||
Datum dest_encoding_name = PG_GETARG_DATUM(1);
|
||||
Datum src_encoding_name = DirectFunctionCall1(
|
||||
namein, CStringGetDatum(DatabaseEncoding->name));
|
||||
Datum src_encoding_name = DirectFunctionCall1(namein,
|
||||
CStringGetDatum(DatabaseEncoding->name));
|
||||
Datum result;
|
||||
|
||||
/*
|
||||
@ -310,11 +310,8 @@ pg_convert_to(PG_FUNCTION_ARGS)
|
||||
* text argument here, relying on the fact that they are both in fact
|
||||
* varlena types, and thus structurally identical.
|
||||
*/
|
||||
result = DirectFunctionCall3(
|
||||
pg_convert, string, src_encoding_name, dest_encoding_name);
|
||||
|
||||
/* free memory allocated by namein */
|
||||
pfree((void *) src_encoding_name);
|
||||
result = DirectFunctionCall3(pg_convert, string,
|
||||
src_encoding_name, dest_encoding_name);
|
||||
|
||||
PG_RETURN_BYTEA_P(result);
|
||||
}
|
||||
@ -329,15 +326,12 @@ pg_convert_from(PG_FUNCTION_ARGS)
|
||||
{
|
||||
Datum string = PG_GETARG_DATUM(0);
|
||||
Datum src_encoding_name = PG_GETARG_DATUM(1);
|
||||
Datum dest_encoding_name = DirectFunctionCall1(
|
||||
namein, CStringGetDatum(DatabaseEncoding->name));
|
||||
Datum dest_encoding_name = DirectFunctionCall1(namein,
|
||||
CStringGetDatum(DatabaseEncoding->name));
|
||||
Datum result;
|
||||
|
||||
result = DirectFunctionCall3(
|
||||
pg_convert, string, src_encoding_name, dest_encoding_name);
|
||||
|
||||
/* free memory allocated by namein */
|
||||
pfree((void *) src_encoding_name);
|
||||
result = DirectFunctionCall3(pg_convert, string,
|
||||
src_encoding_name, dest_encoding_name);
|
||||
|
||||
/*
|
||||
* pg_convert returns a bytea, which we in turn return as text, relying on
|
||||
|
Loading…
x
Reference in New Issue
Block a user