Bruce Momjian wrote:
> I am attaching a minimal patch that will fix the bug in back branches. 
> Keep in mind that a patched pg_ctl will not be able to restart a backend
> that was not patched.

I think this patch will work for unpatched backends as well.  I am still
uncertain if it should be backpatched.

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v
retrieving revision 1.551
diff -c -c -r1.551 postmaster.c
*** src/backend/postmaster/postmaster.c	11 Jan 2008 00:54:09 -0000	1.551
--- src/backend/postmaster/postmaster.c	26 Jun 2008 19:11:37 -0000
***************
*** 4163,4169 ****
  
  	fprintf(fp, "%s", fullprogname);
  	for (i = 1; i < argc; i++)
! 		fprintf(fp, " %s%s%s", SYSTEMQUOTE, argv[i], SYSTEMQUOTE);
  	fputs("\n", fp);
  
  	if (fclose(fp))
--- 4163,4169 ----
  
  	fprintf(fp, "%s", fullprogname);
  	for (i = 1; i < argc; i++)
! 		fprintf(fp, " \"%s\"", argv[i]);
  	fputs("\n", fp);
  
  	if (fclose(fp))
Index: src/bin/pg_ctl/pg_ctl.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_ctl/pg_ctl.c,v
retrieving revision 1.92.2.3
diff -c -c -r1.92.2.3 pg_ctl.c
*** src/bin/pg_ctl/pg_ctl.c	29 Feb 2008 23:31:42 -0000	1.92.2.3
--- src/bin/pg_ctl/pg_ctl.c	26 Jun 2008 19:11:37 -0000
***************
*** 613,627 ****
  			{
  				char	   *arg1;
  
! 				arg1 = strchr(optline, *SYSTEMQUOTE);
! 				if (arg1 == NULL || arg1 == optline)
! 					post_opts = "";
! 				else
  				{
! 					*(arg1 - 1) = '\0'; /* this should be a space */
! 					post_opts = arg1;
  				}
! 				if (postgres_path != NULL)
  					postgres_path = optline;
  			}
  			else
--- 613,629 ----
  			{
  				char	   *arg1;
  
! 				/*
! 				 * Are we at the first option, as defined by space and
! 				 * double-quote?
! 				 */
! 				if ((arg1 = strstr(optline, " \"")) != NULL ||
! 				    (arg1 = strstr(optline, " -")) != NULL)
  				{
! 					*arg1 = '\0';	/* terminate so we get only program name */
! 					post_opts = arg1 + 1; /* point past whitespace */
  				}
! 				if (postgres_path == NULL)
  					postgres_path = optline;
  			}
  			else
-- 
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-patches

Reply via email to