Patch to throw an error if -L is not an abolute path attached and
applied.

---------------------------------------------------------------------------

Josh Berkus wrote:
> 8.0 beta CVS of 8/8/2004:
> 
> If a relative path is used for the -L option in initdb, the following fatal 
> error happens:
> 
> ./initdb -D ../data -L ../share/postgresql/
> <snip>
> creating system views ... ok
> loading pg_description ... ERROR:  could not open file 
> "../share/postgresql/postgres.description" for reading: No such file or 
> directory
> child process exited with exit code 1
> 
> Is this intentional?  The first dozen or so commands work fine with a relative 
> path, and this executes fine with an absolute path for both -D and -L.
> 
> SuSE 9.1, GCC 3.3.3
> 
> -- 
> Josh Berkus
> Aglio Database Solutions
> San Francisco
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: src/bin/initdb/initdb.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/bin/initdb/initdb.c,v
retrieving revision 1.49
diff -c -c -r1.49 initdb.c
*** src/bin/initdb/initdb.c     11 Aug 2004 23:28:54 -0000      1.49
--- src/bin/initdb/initdb.c     16 Aug 2004 03:41:45 -0000
***************
*** 2234,2240 ****
                share_path = xmalloc(MAXPGPATH);
                get_share_path(backend_exec, share_path);
        }
! 
        canonicalize_path(share_path);
  
        if ((short_version = get_short_version()) == NULL)
--- 2234,2245 ----
                share_path = xmalloc(MAXPGPATH);
                get_share_path(backend_exec, share_path);
        }
!       else if (!is_absolute_path(share_path))
!       {
!               fprintf(stderr, _("%s: input file location must be an absolute 
path\n"), progname);
!               exit(1);
!       }
!       
        canonicalize_path(share_path);
  
        if ((short_version = get_short_version()) == NULL)
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to