Index: src/bin/psql/common.c =================================================================== RCS file: /Users/neilc/local/cvs/pgsql-server/src/bin/psql/common.c,v retrieving revision 1.86 diff -c -r1.86 common.c *** src/bin/psql/common.c 7 May 2004 00:24:58 -0000 1.86 --- src/bin/psql/common.c 23 May 2004 21:20:01 -0000 *************** *** 802,808 **** char buf[10]; success = true; ! sprintf(buf, "%u", (unsigned int) PQoidValue(results)); if (!QUIET()) { if (pset.popt.topt.format == PRINT_HTML) --- 802,809 ---- char buf[10]; success = true; ! snprintf(buf, sizeof(buf), ! "%u", (unsigned int) PQoidValue(results)); if (!QUIET()) { if (pset.popt.topt.format == PRINT_HTML) Index: src/bin/psql/print.c =================================================================== RCS file: /Users/neilc/local/cvs/pgsql-server/src/bin/psql/print.c,v retrieving revision 1.47 diff -c -r1.47 print.c *** src/bin/psql/print.c 18 May 2004 20:18:58 -0000 1.47 --- src/bin/psql/print.c 23 May 2004 22:07:52 -0000 *************** *** 1133,1147 **** printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout) { int nfields; const char **headers; const char **cells; char **footers; char *align; int i; - /* extract headers */ - nfields = PQnfields(result); headers = calloc(nfields + 1, sizeof(*headers)); --- 1133,1146 ---- printQuery(const PGresult *result, const printQueryOpt *opt, FILE *fout) { int nfields; + int ncells; const char **headers; const char **cells; char **footers; char *align; int i; /* extract headers */ nfields = PQnfields(result); headers = calloc(nfields + 1, sizeof(*headers)); *************** *** 1155,1169 **** headers[i] = mbvalidate(PQfname(result, i), opt->topt.encoding); /* set cells */ ! ! cells = calloc(nfields * PQntuples(result) + 1, sizeof(*cells)); if (!cells) { perror("calloc"); exit(EXIT_FAILURE); } ! for (i = 0; i < nfields * PQntuples(result); i++) { if (PQgetisnull(result, i / nfields, i % nfields)) cells[i] = opt->nullPrint ? opt->nullPrint : ""; --- 1154,1168 ---- headers[i] = mbvalidate(PQfname(result, i), opt->topt.encoding); /* set cells */ ! ncells = PQntuples(result) * nfields; ! cells = calloc(ncells + 1, sizeof(*cells)); if (!cells) { perror("calloc"); exit(EXIT_FAILURE); } ! for (i = 0; i < ncells; i++) { if (PQgetisnull(result, i / nfields, i % nfields)) cells[i] = opt->nullPrint ? opt->nullPrint : ""; *************** *** 1185,1190 **** --- 1184,1194 ---- } footers[0] = malloc(100); + if (!footers[0]) + { + perror("malloc"); + exit(EXIT_FAILURE); + } if (PQntuples(result) == 1) snprintf(footers[0], 100, gettext("(1 row)")); else *************** *** 1194,1200 **** footers = NULL; /* set alignment */ - align = calloc(nfields + 1, sizeof(*align)); if (!align) { --- 1198,1203 ---- *************** *** 1221,1233 **** } /* call table printer */ - printTable(opt->title, headers, cells, ! footers ? (const char *const *) footers : (const char *const *) (opt->footers), align, &opt->topt, fout); ! free((void *) headers); ! free((void *) cells); if (footers) { free(footers[0]); --- 1224,1235 ---- } /* call table printer */ printTable(opt->title, headers, cells, ! (const char *const *) footers, align, &opt->topt, fout); ! free(headers); ! free(cells); if (footers) { free(footers[0]);