The following bug has been logged online:
Bug reference: 1337
Logged by: PJMODOS
Email address: pjmodos@parba.cz
PostgreSQL version: 8.0 Beta
Operating system: Windows 2000
Description: Problem running PostgreSQL as service, incl. fix
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);