The patch fixes a rare bug that may occur when one tries to vacuum a single

table. The table name is de-allocated by the CommitTransactionCommand()
in vc_init() before it is copied in VacRel.data and sometimes this causes
a SIGSEGV. My patch simply moves the strcpy before vc_init.

Submitted by Massimo Dal Zotto <dz@cs.unitn.it>.
This commit is contained in:
Vadim B. Mikheev 1997-04-17 01:45:36 +00:00
parent ba697c8c0b
commit a0d63ac98c
1 changed files with 5 additions and 6 deletions

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.28 1997/04/15 18:18:21 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.29 1997/04/17 01:45:36 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@ -110,18 +110,17 @@ vacuum(char *vacrel, bool verbose)
MESSAGE_LEVEL = DEBUG;
/* vacrel gets de-allocated on transaction commit */
if (vacrel)
strcpy(VacRel.data,vacrel);
/* initialize vacuum cleaner */
vc_init();
/* vacuum the database */
if (vacrel)
{
strcpy(VacRel.data,vacrel);
vc_vacuum(&VacRel);
}
vc_vacuum(&VacRel);
else
vc_vacuum(NULL);
vc_vacuum(NULL);
/* clean up */
vc_shutdown();