From 07be293a971af2180f94dd571021df711dd343ac Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 30 Jan 2010 18:59:51 +0000 Subject: [PATCH] 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. --- src/bin/psql/print.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 625e888eb9..fc29cfd90d 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); -- 2.40.0