Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14418 > unrolled thread

cd -L not behaving as documented with symlinks and ..

Started byHugo Gabriel Eyherabide <hugogabriel.eyherabide@gmail.com>
First post2018-07-30 14:48 +0300
Last post2018-07-30 14:48 +0300
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug


Contents

  cd -L not behaving as documented with symlinks and .. Hugo Gabriel Eyherabide <hugogabriel.eyherabide@gmail.com> - 2018-07-30 14:48 +0300

#14418 — cd -L not behaving as documented with symlinks and ..

FromHugo Gabriel Eyherabide <hugogabriel.eyherabide@gmail.com>
Date2018-07-30 14:48 +0300
Subjectcd -L not behaving as documented with symlinks and ..
Message-ID<mailman.4410.1532951294.1292.bug-bash@gnu.org>
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-unknown-linux-gnu'
-DCONF_VENDOR='unknown' -DLOCALEDIR='/usr/local/share/locale$
uname output: Linux hugo-agile 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu
May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Machine Type: x86_64-unknown-linux-gnu

Bash Version: 4.4
Patch Level: 0
Release Status: release

Description:
According to the documentation, cd -L should resolve symlinks after
evaluating .., and that is indeed the case, unless the canonicalization
fails, in which case it uses the original path, seemingly behaving as cd -P.

More specifically, suppose that in the current working directory /tmp there
only exists a directory a/b and a symlink c->a/b. Then, cd -L c/../; pwd
produces /tmp as expected. However, cd -L c/../b; pwd results in /tmp/a/b,
as opposed to an error (because the directory /tmp/b does not exists).

I believe that pathcanon is correct, and that the problem is in
change_to_directory, when choosing between the canon and non-canon form.

Repeat-By:
See above.
Fix:

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web