diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2010-01-30 18:59:51 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2010-01-30 18:59:51 +0000 |
commit | 07be293a971af2180f94dd571021df711dd343ac (patch) | |
tree | c2e3641e4b3f258d6e0936f31712ec45b59a0b26 /src | |
parent | 3e51ae491de5c1c998546096e7cbaba4bb56e884 (diff) | |
download | postgresql-07be293a971af2180f94dd571021df711dd343ac.tar.gz postgresql-07be293a971af2180f94dd571021df711dd343ac.zip |
Fix memory leakage introduced into print_aligned_text by 8.4 changes
(failure to free col_lineptrs[] array elements) and exacerbated in the
current devel cycle (failure to free "wrap"). This resulted in moderate
bloat of psql over long script runs. Noted while testing bug #5302,
although what the reporter was complaining of was backend-side leakage.
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/psql/print.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 625e888eb94..fc29cfd90d7 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2010, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.120 2010/01/02 16:57:59 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.121 2010/01/30 18:59:51 tgl Exp $ */ #include "postgres_fe.h" @@ -1047,6 +1047,11 @@ print_aligned_text(const printTableContent *cont, FILE *fout) } /* clean up */ + for (i = 0; i < col_count; i++) + { + free(col_lineptrs[i]); + free(format_buf[i]); + } free(width_header); free(width_average); free(max_width); @@ -1055,11 +1060,10 @@ print_aligned_text(const printTableContent *cont, FILE *fout) free(curr_nl_line); free(col_lineptrs); free(max_bytes); + free(format_buf); free(header_done); free(bytes_output); - for (i = 0; i < col_count; i++) - free(format_buf[i]); - free(format_buf); + free(wrap); if (is_pager) ClosePager(fout); |