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