Hello, i am facing a bug on portable OpenBSD ksh, aka oksh; where cd 
will attempt to search for the given directory (if not provided as an 
absolute path) in CDPATH before checking it in the current working 
directory. A way to reproduce is the following:

        /tmp $ unset CDPATH
        /tmp $ mkdir foo
        /tmp $ cd foo
        /tmp/foo $ CDPATH=/tmp
        /tmp/foo $ mkdir bar
        /tmp/foo $ cd bar
        /bin/ksh: cd: bar: bad directory
        /tmp/foo $ unset CDPATH
        /tmp/foo $ cd bar
        /tmp/foo/bar $

This is reproducible on OpenBSD.

I believe since the given directory (argument) is not an absolute path; 
it attempts to search in CDPATH before checking if the directory 
exists. This will cause any attempts to cd into a directory to fail.

I also believe that the given directory to cd should be preferred over 
CDPATH; what i mean by this is if a directory exists within CDPATH but 
also exists within the current working directory; the latter should be 
preferred.

This is my first time submitting to a mailing list, so my apologies if 
i get something wrong.

Reply via email to