mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-28 01:11:50 +02:00
Fix erroneous space calculation leading to core dump in dumpProcLangs,
per report from Olivier Prenant. Also fix off-by-one space calculation in ReadToc; this woould not have hurt us until we had more than 100 dependencies for a single object, but wrong is wrong.
This commit is contained in:
parent
5295fffc26
commit
228697179a
@ -15,7 +15,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.70 2003/03/10 22:28:19 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.71 2003/05/03 22:18:59 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -1916,7 +1916,7 @@ ReadToc(ArchiveHandle *AH)
|
|||||||
depIdx = 0;
|
depIdx = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (depIdx > depSize)
|
if (depIdx >= depSize)
|
||||||
{
|
{
|
||||||
depSize *= 2;
|
depSize *= 2;
|
||||||
deps = realloc(deps, sizeof(char *) * depSize);
|
deps = realloc(deps, sizeof(char *) * depSize);
|
||||||
@ -1932,7 +1932,10 @@ ReadToc(ArchiveHandle *AH)
|
|||||||
if (depIdx > 1) /* We have a non-null entry */
|
if (depIdx > 1) /* We have a non-null entry */
|
||||||
te->depOid = realloc(deps, sizeof(char *) * depIdx); /* trim it */
|
te->depOid = realloc(deps, sizeof(char *) * depIdx); /* trim it */
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
free(deps);
|
||||||
te->depOid = NULL; /* no deps */
|
te->depOid = NULL; /* no deps */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
te->depOid = NULL;
|
te->depOid = NULL;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* by PostgreSQL
|
* by PostgreSQL
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.327 2003/04/25 02:28:22 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.328 2003/05/03 22:18:59 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -3591,7 +3591,7 @@ dumpProcLangs(Archive *fout, FuncInfo finfo[], int numFuncs)
|
|||||||
resetPQExpBuffer(delqry);
|
resetPQExpBuffer(delqry);
|
||||||
|
|
||||||
/* Make a dependency to ensure function is dumped first */
|
/* Make a dependency to ensure function is dumped first */
|
||||||
deps = malloc(sizeof(char *) * (2 + (strcmp(lanvalidator, "0") != 0) ? 1 : 0));
|
deps = malloc(sizeof(char *) * 10);
|
||||||
depIdx = 0;
|
depIdx = 0;
|
||||||
|
|
||||||
(*deps)[depIdx++] = strdup(lanplcallfoid);
|
(*deps)[depIdx++] = strdup(lanplcallfoid);
|
||||||
|
Loading…
Reference in New Issue
Block a user