BUG #1338: Problem running PostgreSQL as service

PostgreSQL Bugs List <pgsql-bugs@postgresql.org>

From: "PostgreSQL Bugs List" <pgsql-bugs@postgresql.org>
To: pgsql-bugs@postgresql.org
Date: 2004-12-05T09:44:02Z
Lists: pgsql-bugs
The following bug has been logged online:

Bug reference:      1338
Logged by:          PJMODOS

Email address:      pjmodos@parba.cz

PostgreSQL version: 8.0 Beta

Operating system:   Windows 2000

Description:        Problem running PostgreSQL as service

Details: 

In 8.0 RC1, because of bug in -D parsing in pg_ctl I am unable to run 
postgres as service when I have space in data path - when i register it with 
pg_ctl register -D "C:\Program Files\PostgreSQL\data" and try to run it then 
it won't work and in event log I have this: pg_ctl: no database directory 
specified and environment variable PGDATA unset. 


I have found very simple solution, just added + 1 in one of xmallocs and it 
seems to work, diff follows: 

--- pg_ctl.c	Sat Nov 27 19:51:06 2004
+++ pg_ctl_new.c	Sun Dec 05 10:21:40 2004
@@ -1289,7 +1289,7 @@
 			{
 				case 'D':
 					{
-						char	   *pgdata_D = xmalloc(strlen(optarg));
+						char	   *pgdata_D = xmalloc(strlen(optarg) + 1);
 						char	   *env_var = xmalloc(strlen(optarg) + 8);
 
 						strcpy(pgdata_D, optarg);