From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: Marcin Wisnicki <mwisnicki@gmail.com>, cygwin@cygwin.com
Cc: Jeffrey Altman <jaltman@secure-endpoints.com>,
Thomas Wolff <towo@towo.net>
Subject: Re: ls/stat on OneDrive causes download of files
Date: Fri, 8 Mar 2024 23:21:03 +0100 [thread overview]
Message-ID: <ZeuPT82dRN2RfzHi@calimero.vinschen.de> (raw)
In-Reply-To: <ZesZCFdvz4uxLjKg@calimero.vinschen.de>
On Mar 8 14:56, Corinna Vinschen via Cygwin wrote:
> On Mar 8 08:15, Jeffrey Altman via Cygwin wrote:
> > On 3/8/2024 7:52 AM, Thomas Wolff via Cygwin wrote:
> > > Am 08.03.2024 um 11:37 schrieb Corinna Vinschen via Cygwin:
> > > > FILE_OPEN_NO_RECALL (0x00400000)
> > > > [...]
> > > > This sounds like we could simply add this flag to all NtOpenFile
> > > > used for path conversion or stat-like calls, without having to care
> > > > for any file attributes specificially.
> > > >
> > > > Does that make sense?
> > > Sounds good, without even studying the other details...
> > > I speculate some more handling would still be needed to avoid executable
> > > detection via magic tags.
> > >
> > Agreed. FILE_OPEN_NO_RECALL has been defined for at least a decade but was
> > not documented by Microsoft relatively recently.
>
> Thanks for the feedback, guys.
>
> > Another suggestion would be to try opening the file with
> > FILE_READ_ATTRIBUTES instead of GENERIC_READ if the file data is not
> > required. See
> >
> > https://github.com/microsoft/BuildXL/commit/4fb8e7ce07d243ccd95de0d66da551538a794493
>
> Cygwin uses the minimum of required permissions in NtCreateFile/
> NtOpenFile calls anyway.
>
> I'm just running a test cygwin DLL locally with a lot of added
> FILE_OPEN_NO_RECALL bits and a couple of added attribute checks for
> being offline to allow skipping some code.
>
> I think I'll push this change in a bit so we get a test release out
> so people using OneDrive can test.
I pushed this change as well as a followup change to make sure we don't
inadvertently recall an offline file. I also added handling for the
Pinned and Unpinned attributes to chattr(1) and lsattr(1).
The full set of changes can be tested by installing the Cygwin test
release 3.6.0-0.77.g06aa5a751682.
Please give it a try. If you encounter a situation which still results
in recalling an offline file in a situation which doesn't qualify for
it, please report. We will have to analyze that situation further
then.
Thanks,
Corinna
next prev parent reply other threads:[~2024-03-08 22:21 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-06 0:54 Marcin Wisnicki
2024-03-06 13:22 ` Corinna Vinschen
2024-03-06 13:28 ` Corinna Vinschen
2024-03-06 13:54 ` Brian Inglis
2024-03-06 17:19 ` Corinna Vinschen
2024-03-06 18:55 ` Jeffrey Altman
2024-03-06 19:14 ` Corinna Vinschen
2024-03-07 9:06 ` Corinna Vinschen
2024-03-08 10:37 ` Corinna Vinschen
2024-03-08 12:52 ` Thomas Wolff
2024-03-08 13:15 ` Jeffrey Altman
2024-03-08 13:56 ` Corinna Vinschen
2024-03-08 22:21 ` Corinna Vinschen [this message]
2024-03-08 22:26 ` Marcin Wisnicki
2024-03-09 20:29 ` Marcin Wisnicki
2024-03-11 17:04 ` Corinna Vinschen
2024-03-06 19:00 ` Corinna Vinschen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZeuPT82dRN2RfzHi@calimero.vinschen.de \
--to=corinna-cygwin@cygwin.com \
--cc=cygwin@cygwin.com \
--cc=jaltman@secure-endpoints.com \
--cc=mwisnicki@gmail.com \
--cc=towo@towo.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).