Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <42584A5D.7070405@byu.net> Date: Sat, 09 Apr 2005 15:34:21 -0600 From: Eric Blake User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: bug in .. handling Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Cygwin is taking too much liberty when resolving paths with .. in them. I've tested this with both 1.5.14 and the 20050408 snapshot. POSIX requires that the pathname before the .. exist, and if it is a symlink, that it is resolved, before going to the parent directory. For example: $ cd /tmp/example $ ls $ mkdir -p a/b $ ln -s a/b b $ touch a/c a/b/d $ ls b d $ ls b/.. # bug - should list contents of a, not . a b $ ls a b c $ ls none/.. # bug - should fail with ENOENT a b $ ln -s e e $ readlink -v e/none readlink: e/foo: Too many levels of symbolic links $ ls e/.. # bug - should fail with ELOOP a b e Basically, cygwin is blindly collapsing dir/.. into nothing, without first verifying dir, in violation of POSIX. -- Someday, I might put a cute statement here. Eric Blake ebb9 AT byu DOT net -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/