This is the mail archive of the cygwin-developers@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: path_conv::check() gets confused by recently opened files


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]