Thread: BUG #1337: Problem running PostgreSQL as service, incl. fix

BUG #1337: Problem running PostgreSQL as service, incl. fix

From
"PostgreSQL Bugs List"
Date:
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);

Re: BUG #1337: Problem running PostgreSQL as service, incl.

From
Neil Conway
Date:
On Sun, 2004-12-05 at 09:43 +0000, PostgreSQL Bugs List wrote:
> 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:

Thanks, fixed. (I used a slightly different fix: xstrdup() rather than
xmalloc() + strcpy() ).

-Neil