lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <874onjjnln.fsf@devron.myhome.or.jp>
Date:	Tue, 22 Dec 2009 19:43:16 +0900
From:	OGAWA Hirofumi <hirofumi@...l.parknet.co.jp>
To:	Jean-Pierre André 
	<jean-pierre.andre@...adoo.fr>
Cc:	Eric Blake <ebb9@....net>, fuse-devel@...ts.sourceforge.net,
	Miklos Szeredi <miklos@...redi.hu>,
	Christoph Hellwig <hch@....de>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	xfs@....sgi.com
Subject: Re: [fuse-devel] utimensat fails to update ctime

Jean-Pierre André <jean-pierre.andre@...adoo.fr> writes:

> Hi all,

Hi,

> OGAWA Hirofumi wrote:
>> Eric Blake<ebb9@....net>  writes:
>>
>>    
>> It is likely the issue of libfuse or ntfs-3g. I don't know about ntfs-3g
>> people at all. So, for now, just Cc: to fuse people.
>>    
>
> Which ntfs-3g version are you using ?

I don't know which version is used by actual user. But, well, I've got
source by "apt-get source", and the version was 1:2009.4.4-1.

Now, I've got ntfs-3g-2009.11.14AC.2.tgz from specified url.

>>> utimensat(0, NULL, {UTIME_OMIT, UTIME_NOW}, 0) = 0
>
> Currently ntfs-3g does not set sub-second precision.
>
> There is also a slight problem in the fuse interface :
> the time buffer is never passed as NULL, consequently
> in some circumstances ntfs-3g cannot decide correctly
> over permissions. A permissive action is taken in this
> situation.
>
>> > From this, "ia_valid" will have "ATTR_CTIME | ATTR_MTIME". And the
>> request would pass to userland via fuse of kernel part, then it will be
>> handled by libfuse.
>>
>> > From quick grep of libfuse and ntfs-3g (would not be latest), ntfs-3g is
>> using "struct fuse_operations", not "struct fuse_lowlevel_ops".
>>    
>
> With the latest ntfs-3g, currently as a release candidate,
> you can (optionally) use the low level fuse interface
> http://pagesperso-orange.fr/b.andre/advanced-ntfs-3g.html
> use the "lowntfs-3g" driver instead of "ntfs-3g"

Well, the problem seems in fuse_lib_setattr() and ntfs_fuse_setattr()
(lowlevel op too).

The both functions is requiring "ATIME | MTIME". Doesn't it mean the
ntfs-3g can't set only MTIME like above utimensat()?

In fuse_lib_setattr(),

        if (!err && (valid & (FUSE_SET_ATTR_ATIME | FUSE_SET_ATTR_MTIME)) ==
            (FUSE_SET_ATTR_ATIME | FUSE_SET_ATTR_MTIME)) {

In ntfs_fuse_setattr(),
	case FUSE_SET_ATTR_ATIME + FUSE_SET_ATTR_MTIME :
		res = ntfs_fuse_utime(&security, ino, attr, &stbuf);

Or I'm missing something?

Thanks.
-- 
OGAWA Hirofumi <hirofumi@...l.parknet.co.jp>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ