postgres.git / summary / log / commit / refs
commit ebe608915cf9b6689b6dfcb92ddb31c8da765670
Author: Peter Eisentraut <peter_e@gmx.net>
Date: Wed Mar 07 21:46:41 2012 +0000
First released in: 9.2.0, 8.4.12, 9.0.8, 9.1.4
psql: Fix invalid memory access
Due to an apparent thinko, when printing a table in expanded mode
(\x), space would be allocated for 1 slot plus 1 byte per line,
instead of 1 slot per line plus 1 slot for the NULL terminator. When
the line count is small, reading or writing the terminator would
therefore access memory beyond what was allocated.
src/bin/psql/print.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index 9c38be1fd2f..7334e8dbfe4 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -1177,8 +1177,8 @@ print_aligned_vertical(const printTableContent *cont, FILE *fout)
* We now have all the information we need to setup the formatting
* structures
*/
- dlineptr = pg_local_malloc((sizeof(*dlineptr) + 1) * dheight);
- hlineptr = pg_local_malloc((sizeof(*hlineptr) + 1) * hheight);
+ dlineptr = pg_local_malloc((sizeof(*dlineptr)) * (dheight + 1));
+ hlineptr = pg_local_malloc((sizeof(*hlineptr)) * (hheight + 1));
dlineptr->ptr = pg_local_malloc(dformatsize);
hlineptr->ptr = pg_local_malloc(hformatsize);
[parent: 0e925196340b]