Revert the change to print.c, as this breaks src/bin/scripts. The proper
authorNeil Conway <neilc@samurai.com>
Sat, 24 Jan 2004 20:43:26 +0000 (20:43 +0000)
committerNeil Conway <neilc@samurai.com>
Sat, 24 Jan 2004 20:43:26 +0000 (20:43 +0000)
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.

src/bin/psql/print.c

index 6f8b3ede0bd830c38985b0bf41a2a0b3e6106aec..9dd493201c95a99b52b54e179d69cd4ab673640c 100644 (file)
@@ -3,7 +3,7 @@
  *
  * 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 "common.h"
@@ -224,8 +224,19 @@ print_aligned_text(const char *title, const char *const * headers,
 
        if (col_count > 0)
        {
-               widths = xcalloc(col_count, sizeof(*widths));
-               head_w = xcalloc(col_count, sizeof(*head_w));
+               widths = calloc(col_count, sizeof(*widths));
+               if (!widths)
+               {
+                       perror("calloc");
+                       exit(EXIT_FAILURE);
+               }
+
+               head_w = calloc(col_count, sizeof(*head_w));
+               if (!head_w)
+               {
+                       perror("calloc");
+                       exit(EXIT_FAILURE);
+               }
        }
        else
        {
@@ -239,7 +250,12 @@ print_aligned_text(const char *title, const char *const * headers,
 
        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
                cell_w = NULL;
@@ -411,7 +427,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
                col_count++;
        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
                head_w = NULL;
@@ -430,7 +451,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
 
        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
                cell_w = NULL;
@@ -449,7 +475,12 @@ print_aligned_vertical(const char *title, const char *const * headers,
                fprintf(fout, "%s\n", title);
 
        /* make horizontal border */
-       divider = xmalloc(hwidth + dwidth + 10);
+       divider = malloc(hwidth + dwidth + 10);
+       if (!divider)
+       {
+               perror("malloc");
+               exit(EXIT_FAILURE);
+       }
        divider[0] = '\0';
        if (opt_border == 2)
                strcat(divider, "+-");
@@ -471,9 +502,15 @@ print_aligned_vertical(const char *title, const char *const * headers,
                {
                        if (!opt_barebones)
                        {
-                               char       *record_str = xmalloc(32);
+                               char       *record_str = malloc(32);
                                size_t          record_str_len;
 
+                               if (!record_str)
+                               {
+                                       perror("malloc");
+                                       exit(EXIT_FAILURE);
+                               }
+
                                if (opt_border == 0)
                                        snprintf(record_str, 32, "* Record %d", record++);
                                else
@@ -484,7 +521,13 @@ print_aligned_vertical(const char *title, const char *const * headers,
                                        fprintf(fout, "%.*s%s\n", opt_border, divider, record_str);
                                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);
                                        fprintf(fout, "%s\n", div_copy);
@@ -1098,14 +1141,24 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
 
        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++)
                headers[i] = mbvalidate(PQfname(result, i), opt->topt.encoding);
 
        /* 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++)
        {
@@ -1121,9 +1174,14 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
                footers = opt->footers;
        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)
                        snprintf(footers[0], 100, gettext("(1 row)"));
                else
@@ -1134,7 +1192,12 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout)
 
        /* 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++)
        {