aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuo Ishii <ishii@postgresql.org>2002-08-14 05:33:34 +0000
committerTatsuo Ishii <ishii@postgresql.org>2002-08-14 05:33:34 +0000
commit538b1015958dbbe447434909a6412e79d4298643 (patch)
treee0580fa51c389106466788f12429a1f41be034d1 /src
parentfcbc87c1ee13dadcabc6cddc76260515482a6e70 (diff)
downloadpostgresql-538b1015958dbbe447434909a6412e79d4298643.tar.gz
postgresql-538b1015958dbbe447434909a6412e79d4298643.zip
Fix memory leak in SetClientEncoding().
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/mb/mbutils.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c
index 9b1b2021c4d..661a6ff882d 100644
--- a/src/backend/utils/mb/mbutils.c
+++ b/src/backend/utils/mb/mbutils.c
@@ -3,7 +3,7 @@
* client encoding and server internal encoding.
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
- * $Id: mbutils.c,v 1.30 2002/08/08 06:35:26 ishii Exp $
+ * $Id: mbutils.c,v 1.31 2002/08/14 05:33:34 ishii Exp $
*/
#include "postgres.h"
#include "access/xact.h"
@@ -90,7 +90,21 @@ SetClientEncoding(int encoding, bool doit)
if (IsTransactionState())
{
ClientEncoding = &pg_enc2name_tbl[encoding];
+
+ if(ToServerConvPorc != NULL)
+ {
+ if (ToServerConvPorc->fn_extra)
+ pfree(ToServerConvPorc->fn_extra);
+ pfree(ToServerConvPorc);
+ }
ToServerConvPorc = to_server;
+
+ if(ToClientConvPorc != NULL)
+ {
+ if (ToClientConvPorc->fn_extra)
+ pfree(ToClientConvPorc->fn_extra);
+ pfree(ToClientConvPorc);
+ }
ToClientConvPorc = to_client;
}
return 0;