mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
Fix one-byte buffer overrun in PQprintTuples().
This bug goes back to the original Postgres95 sources. Its significance to modern PG versions is marginal, since we have not used PQprintTuples() internally in a very long time, and it doesn't seem to have ever been documented either. Still, it *is* exposed to client apps, so somebody out there might possibly be using it. Xi Wang
This commit is contained in:
parent
e64a48e699
commit
e4cfb5f2e6
@ -681,7 +681,6 @@ PQprintTuples(const PGresult *res,
|
|||||||
int i,
|
int i,
|
||||||
j;
|
j;
|
||||||
char formatString[80];
|
char formatString[80];
|
||||||
|
|
||||||
char *tborder = NULL;
|
char *tborder = NULL;
|
||||||
|
|
||||||
nFields = PQnfields(res);
|
nFields = PQnfields(res);
|
||||||
@ -700,15 +699,15 @@ PQprintTuples(const PGresult *res,
|
|||||||
int width;
|
int width;
|
||||||
|
|
||||||
width = nFields * 14;
|
width = nFields * 14;
|
||||||
tborder = malloc(width + 1);
|
tborder = (char *) malloc(width + 1);
|
||||||
if (!tborder)
|
if (!tborder)
|
||||||
{
|
{
|
||||||
fprintf(stderr, libpq_gettext("out of memory\n"));
|
fprintf(stderr, libpq_gettext("out of memory\n"));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
for (i = 0; i <= width; i++)
|
for (i = 0; i < width; i++)
|
||||||
tborder[i] = '-';
|
tborder[i] = '-';
|
||||||
tborder[i] = '\0';
|
tborder[width] = '\0';
|
||||||
fprintf(fout, "%s\n", tborder);
|
fprintf(fout, "%s\n", tborder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user