From: Vadim B. Mikheev Date: Thu, 17 Apr 1997 01:45:36 +0000 (+0000) Subject: The patch fixes a rare bug that may occur when one tries to vacuum a single X-Git-Tag: REL6_1~304 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a0d63ac98c3144373ddc9c879c574a0bf03f1a32;p=postgresql 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 . --- diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 2df4d172bd..4779f3eb5b 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -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();