]> granicus.if.org Git - postgresql/commitdiff
Fix malloc length for new numeric separator patch.
authorBruce Momjian <bruce@momjian.us>
Thu, 14 Jul 2005 06:46:17 +0000 (06:46 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 14 Jul 2005 06:46:17 +0000 (06:46 +0000)
Centralize malloc into function.

src/bin/psql/print.c

index 7af422e0b0667c9308236800a4f306b165323407..d62030b755d473391500e410813a3bd8930c5331 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2005, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.63 2005/07/10 15:53:42 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.64 2005/07/14 06:46:17 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "common.h"
 
 #include "mbprint.h"
 
+static void *
+pg_local_malloc(size_t size)
+{
+       void       *tmp;
+
+       tmp = malloc(size);
+       if (!tmp)
+       {
+               psql_error("out of memory\n");
+               exit(EXIT_FAILURE);
+       }
+       return tmp;
+}
+
 static int
 num_numericseps(const char *my_str)
 {
@@ -46,6 +60,7 @@ num_numericseps(const char *my_str)
        else
                return int_len / 3 - 1; /* no leading separator */
 }
+
 static int
 len_with_numericsep(const char *my_str)
 {
@@ -77,12 +92,7 @@ format_numericsep(char *my_str, char *numericsep)
        if (digits_before_sep == 0)
                new_len--;      /* no leading separator */
 
-       new_str = malloc(new_len);
-       if (!new_str)
-       {
-               fprintf(stderr, _("out of memory\n"));
-               exit(EXIT_FAILURE);
-       }
+       new_str = pg_local_malloc(new_len + 1);
 
        for (i=0, j=0; ; i++, j++)
        {
@@ -167,13 +177,8 @@ print_unaligned_text(const char *title, const char *const *headers,
                if ((opt_align[i % col_count] == 'r') && strlen(*ptr) > 0 &&
                        opt_numericsep != NULL && strlen(opt_numericsep) > 0)
                {
-                       char *my_cell = malloc(len_with_numericsep(*ptr));
+                       char *my_cell = pg_local_malloc(len_with_numericsep(*ptr) + 1);
                
-                       if (!my_cell)
-                       {
-                               fprintf(stderr, _("out of memory\n"));
-                               exit(EXIT_FAILURE);
-                       }
                        strcpy(my_cell, *ptr);
                        format_numericsep(my_cell, opt_numericsep);
                        fputs(my_cell, fout);
@@ -249,13 +254,8 @@ print_unaligned_vertical(const char *title, const char *const *headers,
                if ((opt_align[i % col_count] == 'r') && strlen(*ptr) != 0 &&
                        opt_numericsep != NULL && strlen(opt_numericsep) > 0)
                {
-                       char *my_cell = malloc(len_with_numericsep(*ptr));
+                       char *my_cell = pg_local_malloc(len_with_numericsep(*ptr) + 1);
                
-                       if (!my_cell)
-                       {
-                               fprintf(stderr, _("out of memory\n"));
-                               exit(EXIT_FAILURE);
-                       }
                        strcpy(my_cell, *ptr);
                        format_numericsep(my_cell, opt_numericsep);
                        fputs(my_cell, fout);
@@ -482,13 +482,8 @@ print_aligned_text(const char *title, const char *const *headers,
                {
                    if (strlen(*ptr) > 0 && opt_numericsep != NULL && strlen(opt_numericsep) > 0)
                    {
-                               char *my_cell = malloc(cell_w[i]);
+                               char *my_cell = pg_local_malloc(cell_w[i] + 1);
 
-                               if (!my_cell)
-                               {
-                                       fprintf(stderr, _("out of memory\n"));
-                                       exit(EXIT_FAILURE);
-                               }
                                strcpy(my_cell, *ptr);
                                format_numericsep(my_cell, opt_numericsep);
                                fprintf(fout, "%*s%s", widths[i % col_count] - cell_w[i], "", my_cell);
@@ -634,12 +629,7 @@ print_aligned_vertical(const char *title, const char *const *headers,
                fprintf(fout, "%s\n", title);
 
        /* make horizontal border */
-       divider = malloc(hwidth + dwidth + 10);
-       if (!divider)
-       {
-               fprintf(stderr, _("out of memory\n"));
-               exit(EXIT_FAILURE);
-       }
+       divider = pg_local_malloc(hwidth + dwidth + 10);
        divider[0] = '\0';
        if (opt_border == 2)
                strcat(divider, "+-");
@@ -661,15 +651,9 @@ print_aligned_vertical(const char *title, const char *const *headers,
                {
                        if (!opt_barebones)
                        {
-                               char       *record_str = malloc(32);
+                               char       *record_str = pg_local_malloc(32);
                                size_t          record_str_len;
 
-                               if (!record_str)
-                               {
-                                       fprintf(stderr, _("out of memory\n"));
-                                       exit(EXIT_FAILURE);
-                               }
-
                                if (opt_border == 0)
                                        snprintf(record_str, 32, "* Record %d", record++);
                                else
@@ -709,13 +693,8 @@ print_aligned_vertical(const char *title, const char *const *headers,
                        fputs(" ", fout);
 
                {
-                       char *my_cell = malloc(cell_w[i]);
+                       char *my_cell = pg_local_malloc(cell_w[i] + 1);
 
-                       if (!my_cell)
-                       {
-                               fprintf(stderr, _("out of memory\n"));
-                               exit(EXIT_FAILURE);
-                       }
                        strcpy(my_cell, *ptr);
                        if ((opt_align[i % col_count] == 'r') && strlen(*ptr) != 0 &&
                                opt_numericsep != NULL && strlen(opt_numericsep) > 0)
@@ -855,13 +834,8 @@ print_html_text(const char *title, const char *const *headers,
                else if ((opt_align[i % col_count] == 'r') && strlen(*ptr) != 0 &&
                                 opt_numericsep != NULL && strlen(opt_numericsep) > 0)
                {
-                       char *my_cell = malloc(len_with_numericsep(*ptr));
+                       char *my_cell = pg_local_malloc(len_with_numericsep(*ptr) + 1);
 
-                       if (!my_cell)
-                       {
-                               fprintf(stderr, _("out of memory\n"));
-                               exit(EXIT_FAILURE);
-                       }
                    strcpy(my_cell, *ptr);
                    format_numericsep(my_cell, opt_numericsep);
                    html_escaped_print(my_cell, fout);
@@ -946,13 +920,8 @@ print_html_vertical(const char *title, const char *const *headers,
                else if ((opt_align[i % col_count] == 'r') && strlen(*ptr) != 0 &&
                        opt_numericsep != NULL && strlen(opt_numericsep) > 0)
                {
-                       char *my_cell = malloc(len_with_numericsep(*ptr));
+                       char *my_cell = pg_local_malloc(len_with_numericsep(*ptr) + 1);
                    
-                       if (!my_cell)
-                       {
-                               fprintf(stderr, _("out of memory\n"));
-                               exit(EXIT_FAILURE);
-                       }
                    strcpy(my_cell, *ptr);
                    format_numericsep(my_cell, opt_numericsep);
                    html_escaped_print(my_cell, fout);
@@ -1646,12 +1615,7 @@ printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout, FILE *f
                        exit(EXIT_FAILURE);
                }
 
-               footers[0] = malloc(100);
-               if (!footers[0])
-               {
-                       fprintf(stderr, _("out of memory\n"));
-                       exit(EXIT_FAILURE);
-               }
+               footers[0] = pg_local_malloc(100);
                if (PQntuples(result) == 1)
                        snprintf(footers[0], 100, _("(1 row)"));
                else