Commit 6f046b9d authored by Neil Conway's avatar Neil Conway

Revert the change to print.c, as this breaks src/bin/scripts. The proper

way to fix this is probably implementing safe memory handling functions
once in a static lib and then using that in the various client apps,
but for the moment I've just reverted the change to un-break the tree.
parent d77b63b1
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000-2003, PostgreSQL Global Development Group * Copyright (c) 2000-2003, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.45 2004/01/24 19:38:49 neilc Exp $ * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.46 2004/01/24 20:43:26 neilc Exp $
*/ */
#include "postgres_fe.h" #include "postgres_fe.h"
#include "common.h" #include "common.h"
...@@ -224,8 +224,19 @@ print_aligned_text(const char *title, const char *const * headers, ...@@ -224,8 +224,19 @@ print_aligned_text(const char *title, const char *const * headers,
if (col_count > 0) if (col_count > 0)
{ {
widths = xcalloc(col_count, sizeof(*widths)); widths = calloc(col_count, sizeof(*widths));
head_w = xcalloc(col_count, sizeof(*head_w)); if (!widths)
{
perror("calloc");
exit(EXIT_FAILURE);
}
head_w = calloc(col_count, sizeof(*head_w));
if (!head_w)
{
perror("calloc");
exit(EXIT_FAILURE);
}
} }
else else
{ {
...@@ -239,7 +250,12 @@ print_aligned_text(const char *title, const char *const * headers, ...@@ -239,7 +250,12 @@ print_aligned_text(const char *title, const char *const * headers,
if (cell_count > 0) if (cell_count > 0)
{ {
cell_w = xcalloc(cell_count, sizeof(*cell_w)); cell_w = calloc(cell_count, sizeof(*cell_w));
if (!cell_w)
{
perror("calloc");
exit(EXIT_FAILURE);
}
} }
else else
cell_w = NULL; cell_w = NULL;
...@@ -411,7 +427,12 @@ print_aligned_vertical(const char *title, const char *const * headers, ...@@ -411,7 +427,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
col_count++; col_count++;
if (col_count > 0) if (col_count > 0)
{ {
head_w = xcalloc(col_count, sizeof(*head_w)); head_w = calloc(col_count, sizeof(*head_w));
if (!head_w)
{
perror("calloc");
exit(EXIT_FAILURE);
}
} }
else else
head_w = NULL; head_w = NULL;
...@@ -430,7 +451,12 @@ print_aligned_vertical(const char *title, const char *const * headers, ...@@ -430,7 +451,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
if (cell_count > 0) if (cell_count > 0)
{ {
cell_w = xcalloc(cell_count, sizeof(*cell_w)); cell_w = calloc(cell_count, sizeof(*cell_w));
if (!cell_w)
{
perror("calloc");
exit(EXIT_FAILURE);
}
} }
else else
cell_w = NULL; cell_w = NULL;
...@@ -449,7 +475,12 @@ print_aligned_vertical(const char *title, const char *const * headers, ...@@ -449,7 +475,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
fprintf(fout, "%s\n", title); fprintf(fout, "%s\n", title);
/* make horizontal border */ /* make horizontal border */
divider = xmalloc(hwidth + dwidth + 10); divider = malloc(hwidth + dwidth + 10);
if (!divider)
{
perror("malloc");
exit(EXIT_FAILURE);
}
divider[0] = '\0'; divider[0] = '\0';
if (opt_border == 2) if (opt_border == 2)
strcat(divider, "+-"); strcat(divider, "+-");
...@@ -471,9 +502,15 @@ print_aligned_vertical(const char *title, const char *const * headers, ...@@ -471,9 +502,15 @@ print_aligned_vertical(const char *title, const char *const * headers,
{ {
if (!opt_barebones) if (!opt_barebones)
{ {
char *record_str = xmalloc(32); char *record_str = malloc(32);
size_t record_str_len; size_t record_str_len;
if (!record_str)
{
perror("malloc");
exit(EXIT_FAILURE);
}
if (opt_border == 0) if (opt_border == 0)
snprintf(record_str, 32, "* Record %d", record++); snprintf(record_str, 32, "* Record %d", record++);
else else
...@@ -484,7 +521,13 @@ print_aligned_vertical(const char *title, const char *const * headers, ...@@ -484,7 +521,13 @@ print_aligned_vertical(const char *title, const char *const * headers,
fprintf(fout, "%.*s%s\n", opt_border, divider, record_str); fprintf(fout, "%.*s%s\n", opt_border, divider, record_str);
else else
{ {
char *div_copy = xstrdup(divider); char *div_copy = strdup(divider);
if (!div_copy)
{
perror("malloc");
exit(EXIT_FAILURE);
}
strncpy(div_copy + opt_border, record_str, record_str_len); strncpy(div_copy + opt_border, record_str, record_str_len);
fprintf(fout, "%s\n", div_copy); fprintf(fout, "%s\n", div_copy);
...@@ -1098,14 +1141,24 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout) ...@@ -1098,14 +1141,24 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
nfields = PQnfields(result); nfields = PQnfields(result);
headers = xcalloc(nfields + 1, sizeof(*headers)); headers = calloc(nfields + 1, sizeof(*headers));
if (!headers)
{
perror("calloc");
exit(EXIT_FAILURE);
}
for (i = 0; i < nfields; i++) for (i = 0; i < nfields; i++)
headers[i] = mbvalidate(PQfname(result, i), opt->topt.encoding); headers[i] = mbvalidate(PQfname(result, i), opt->topt.encoding);
/* set cells */ /* set cells */
cells = xcalloc(nfields * PQntuples(result) + 1, sizeof(*cells)); cells = calloc(nfields * PQntuples(result) + 1, sizeof(*cells));
if (!cells)
{
perror("calloc");
exit(EXIT_FAILURE);
}
for (i = 0; i < nfields * PQntuples(result); i++) for (i = 0; i < nfields * PQntuples(result); i++)
{ {
...@@ -1121,9 +1174,14 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout) ...@@ -1121,9 +1174,14 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
footers = opt->footers; footers = opt->footers;
else if (!opt->topt.expanded && opt->default_footer) else if (!opt->topt.expanded && opt->default_footer)
{ {
footers = xcalloc(2, sizeof(*footers)); footers = calloc(2, sizeof(*footers));
if (!footers)
{
perror("calloc");
exit(EXIT_FAILURE);
}
footers[0] = xmalloc(100); footers[0] = malloc(100);
if (PQntuples(result) == 1) if (PQntuples(result) == 1)
snprintf(footers[0], 100, gettext("(1 row)")); snprintf(footers[0], 100, gettext("(1 row)"));
else else
...@@ -1134,7 +1192,12 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout) ...@@ -1134,7 +1192,12 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
/* set alignment */ /* set alignment */
align = xcalloc(nfields + 1, sizeof(*align)); align = calloc(nfields + 1, sizeof(*align));
if (!align)
{
perror("calloc");
exit(EXIT_FAILURE);
}
for (i = 0; i < nfields; i++) for (i = 0; i < nfields; i++)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment