mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Path-mangling logic was failing to account for paths containing mentions
of '.' or '..'. Extend canonicalize_path() to trim off trailing occurrences of these things, and use it to fix up paths where needed (which I think is only after places where we trim the last path component, but maybe some others will turn up). Fixes Josh's complaint that './initdb' does not work.
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/port/exec.c,v 1.20 2004/08/09 03:12:38 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/port/exec.c,v 1.21 2004/08/09 20:20:46 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -433,6 +433,9 @@ find_other_exec(const char *argv0, const char *target,
|
||||
|
||||
/* Trim off program name and keep just directory */
|
||||
*last_dir_separator(retpath) = '\0';
|
||||
canonicalize_path(retpath);
|
||||
|
||||
/* Now append the other program's name */
|
||||
snprintf(retpath + strlen(retpath), MAXPGPATH - strlen(retpath),
|
||||
"/%s%s", target, EXE);
|
||||
|
||||
|
Reference in New Issue
Block a user