diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2010-01-30 18:59:58 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2010-01-30 18:59:58 +0000 |
commit | 1ff05d09a01b660285f78ffb57dbaf79c83b09b8 (patch) | |
tree | 5f5099a2658eccb49bb7fb3c58d1339557cd4b1b /src | |
parent | 96b0da67ff82268d6d2dc6eeabaa277ba4a2fab4 (diff) | |
download | postgresql-1ff05d09a01b660285f78ffb57dbaf79c83b09b8.tar.gz postgresql-1ff05d09a01b660285f78ffb57dbaf79c83b09b8.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 | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 4260143c447..e124531e7d6 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2009, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.116 2009/06/12 16:17:29 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.116.2.1 2010/01/30 18:59:58 tgl Exp $ */ #include "postgres_fe.h" @@ -923,6 +923,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); @@ -931,11 +936,9 @@ 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); if (is_pager) ClosePager(fout); |