<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/fusefrontend, branch v1.7</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.7</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.7'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2019-02-17T16:05:05+00:00</updated>
<entry>
<title>nametransform: reject names longer than 255 chars</title>
<updated>2019-02-17T16:05:05+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2019-02-17T16:05:05+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=19cb6d046aac92f44722c17ba9a371b08ca0be6a'/>
<id>urn:sha1:19cb6d046aac92f44722c17ba9a371b08ca0be6a</id>
<content type='text'>
Looks like we allowed creating longer names by accident.
Fix that, and add a test that verifies it.
</content>
</entry>
<entry>
<title>fusefronted: comment why Access() does not check context.Uid</title>
<updated>2019-01-20T13:37:36+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2019-01-20T12:34:46+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b08cbce5c1244f901e58812402d82a1816ecf436'/>
<id>urn:sha1:b08cbce5c1244f901e58812402d82a1816ecf436</id>
<content type='text'>
https://github.com/rfjakob/gocryptfs/issues/347
</content>
</entry>
<entry>
<title>fusefrontend: ensure directories without W or X perms can be deleted</title>
<updated>2019-01-20T13:29:28+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2019-01-20T13:29:28+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=962c52364415496b64a42b49fe5f90d593dc09f7'/>
<id>urn:sha1:962c52364415496b64a42b49fe5f90d593dc09f7</id>
<content type='text'>
This fixed the "Permission denied" bug, but still has the problem that
the directory may be replaced behind our back. Mitigated by the fact
that we skip the workaround when running as root with -allow_other.

https://github.com/rfjakob/gocryptfs/issues/354
</content>
</entry>
<entry>
<title>Revert "syscallcompat: drop Faccessat AT_SYMLINK_NOFOLLOW helper"</title>
<updated>2019-01-20T12:10:59+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2019-01-20T12:10:59+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=3d6b2685fb926b40b4eb528a8cbdc3871444d492'/>
<id>urn:sha1:3d6b2685fb926b40b4eb528a8cbdc3871444d492</id>
<content type='text'>
Breaks mounting on MacOS: unix.Faccessat on Darwin does NOT (yet)
support AT_SYMLINK_NOFOLLOW. See d44fe89ba4f3252c5bd00c4f7730197732f2a26a .

This reverts commit 0805a63df1b5f915b228727f6074c2506922d0ad.
</content>
</entry>
<entry>
<title>syscallcompat: drop Faccessat AT_SYMLINK_NOFOLLOW helper</title>
<updated>2019-01-20T11:59:59+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2019-01-20T11:59:59+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=0805a63df1b5f915b228727f6074c2506922d0ad'/>
<id>urn:sha1:0805a63df1b5f915b228727f6074c2506922d0ad</id>
<content type='text'>
unix.Faccessat has added support for AT_SYMLINK_NOFOLLOW in July 2018,
https://github.com/golang/sys/commit/bd9dbc187b6e1dacfdd2722a87e83093c2d7bd6e#diff-341484dbbe3180cd7a31ef2ad2d679b6
which means we no longer need our own helper.

Closes https://github.com/rfjakob/gocryptfs/issues/347
</content>
</entry>
<entry>
<title>fusefrontend: Always use intFd() method instead of int(f.fd.Fd()).</title>
<updated>2019-01-16T19:55:20+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2019-01-16T14:32:16+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=452b8b00f426c9e745fcdeb3677147d492406f6f'/>
<id>urn:sha1:452b8b00f426c9e745fcdeb3677147d492406f6f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fusefrontend: Rework the Utimens handling on macOS.</title>
<updated>2019-01-16T19:55:20+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2019-01-16T14:38:32+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=682e642cfa556c2d72c4050bfb8e38febdec49b3'/>
<id>urn:sha1:682e642cfa556c2d72c4050bfb8e38febdec49b3</id>
<content type='text'>
For Linux, everything effectively stays the same. For both path-based and
fd-based Utimens() calls, we use unix.UtimesNanoAt(). To avoid introducing
a separate syscall wrapper for futimens() (as done in go-fuse, for example),
we instead use the /proc/self/fd - trick.

On macOS, this changes quite a lot:

* Path-based Utimens() calls were previously completely broken, since
  unix.UtimensNanoAt() ignores the passed file descriptor. Note that this
  cannot be fixed easily since there IS no appropriate syscall available on
  macOS prior to High Sierra (10.13). We emulate this case by using
  Fchdir() + setattrlist().

* Fd-based Utimens() calls were previously translated to f.GetAttr() (to
  fill any empty parameters) and syscall.Futimes(), which does not does
  support nanosecond precision. Both issues can be fixed by switching to
  fsetattrlist().

Fixes https://github.com/rfjakob/gocryptfs/issues/350
</content>
</entry>
<entry>
<title>fusefrontend: Print 'too many open files' warning for both short and long names.</title>
<updated>2019-01-15T21:07:37+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2019-01-15T10:35:20+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=8f331456511a14d8d936bd4bdc60c4bf587b4d3a'/>
<id>urn:sha1:8f331456511a14d8d936bd4bdc60c4bf587b4d3a</id>
<content type='text'>
While we're at it, also replace os.* constants with syscall.* constants.
</content>
</entry>
<entry>
<title>syscallcompat: rework Fchmodat to FchmodatNofollow</title>
<updated>2019-01-14T20:54:16+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2019-01-14T20:54:16+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a7d59032d3790e117a48be6be1fb3a968266093b'/>
<id>urn:sha1:a7d59032d3790e117a48be6be1fb3a968266093b</id>
<content type='text'>
We never want Fchmodat to follow symlinks, so follow what
Qemu does, and call our function FchmodatNofollow.
</content>
</entry>
<entry>
<title>fusefrontend: drop last remaining call into loopbackFileSystem</title>
<updated>2019-01-13T19:27:35+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2019-01-13T19:27:35+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=e885f087462338b4d65f0c12a004f57dc513b839'/>
<id>urn:sha1:e885f087462338b4d65f0c12a004f57dc513b839</id>
<content type='text'>
The only call forwarded to loopbackFileSystem was Statfs,
which is trivial to implement.

Implement it and drop loopbackFileSystem, as having it carries the
risk that a coding error bypasses the usual encryption/decryption
chain.
</content>
</entry>
</feed>
