[Libguestfs] [PATCH 1/3] New API: case-sensitive-path to return case sensitive path on NTFS 3g fs
Matthew Booth
mbooth at redhat.com
Mon Oct 26 13:16:15 UTC 2009
On 26/10/09 12:13, Richard W.M. Jones wrote:
> On Mon, Oct 26, 2009 at 11:18:26AM +0000, Matthew Booth wrote:
>> Problem is, if you don't put the magic in you're pushing the problem on
>> to the library user.
>
> This is not true. It's only used for the case where you are resolving
> paths given to you by Windows -- eg. coming from a Windows
> configuration file or from the Windows Registry. The case we use it
> is precisely this: we read the Windows %systemroot% from NTLDR and
> then have to resolve that against the filesystem. If Windows allowed
> its root filesystem to be on ext3 it would work the same way.
.. or the guestfish user who types 'cat
win:c:\windows\system32\blah.txt' and doesn't get the result they
intended. Essentially you need to do this in 2 cases: you read a path
from a config file, or you're accessing a file whose location you
already know. In either case, the additional call is just untidiness.
> In any other case, using case_sensitive_path is almost certainly
> wrong, in fact not just slow but quite likely to be insecure too. You
> don't want a Linux config file that specifies /etc/something to
> randomly pick /etc/SOMETHING.
It's a very good point. You can fix this, though. When iterating down
the directory structure, you'll open a file to check if it's a
directory. At the same time, to fstatfs() to check what filesystem it's
on. By doing this you can choose directory-by-directory whether or not
to be case-sensitive. This should always be safe.
Matt
--
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team
M: +44 (0)7977 267231
GPG ID: D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
More information about the Libguestfs
mailing list