提交 a0d63ac9 编写于 作者: V Vadim B. Mikheev

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>.
上级 ba697c8c
......@@ -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();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册