This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
Re: path_conv::check() gets confused by recently opened files
- From: Corinna Vinschen <vinschen at redhat dot com>
- To: Cygwin-Developers <cygwin-developers at cygwin dot com>
- Date: Wed, 22 May 2002 14:56:27 +0200
- Subject: Re: path_conv::check() gets confused by recently opened files
- References: <20020521200309.GA2392@tishler.net>
- Reply-to: cygwin-developers at cygwin dot com
On Tue, May 21, 2002 at 04:03:09PM -0400, Jason Tishler wrote:
> I stumbled across a problem with path_conv::check() when scp-ing a
> read-only file. I can reproduce the problem with the attached simple
> test case, tchmod.cc. For example:
>
> $ ls -l -d foo foo/readonly
> ls: foo/readonly: No such file or directory
> drwxr-xr-x 2 jt Domain U 0 May 21 15:13 foo
> $ tchmod foo/readonly
> $ ls -l -d foo foo/readonly
> dr--r--r-- 2 jt Domain U 0 May 21 15:13 foo
> -rw-r--r-- 1 jt Domain U 0 May 21 15:13 foo/readonly
>
> Note that foo's permissions should not have changed and foo/readonly
> should be read-only instead of read-write.
>
> The expected results which can be forced by supplying a second argument
> is:
>
> $ ls -l -d foo foo/readonly
> ls: foo/readonly: No such file or directory
> drwxr-xr-x 2 jt Domain U 0 May 21 15:23 foo
> $ tchmod foo/readonly 1
> $ ls -l -d foo foo/readonly
> drwxr-xr-x 2 jt Domain U 0 May 21 15:23 foo
> -r--r--r-- 1 jt Domain U 0 May 21 15:23 foo/readonly
>
> Unfortunately, I haven't figured out how to teach path_conv::check()
> to deal with recently opened files. I'm also a little leery to perturb
> this code. Any hints or help would be greatly appreciated.
I found that path_conv::check() pinches off the tail when searching
for existing path components. This strips the filename here from
path_copy since it doesn't exist yet. The effect is that
path_conv->normalized_path can't be correct when path_conv points
to a yet non-existant file. I don't see an easy way to get the
correct normalized path without introducing an additioanl temporary
copy of the path.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.