<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/tests, branch v1.4.3</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4.3</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4.3'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2018-01-21T19:04:37+00:00</updated>
<entry>
<title>Documentation: add extractloop example output</title>
<updated>2018-01-21T19:04:37+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2018-01-21T19:04:37+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=991708af016af074b4cd99b2bf333fc48effaa55'/>
<id>urn:sha1:991708af016af074b4cd99b2bf333fc48effaa55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fusefronted: add PlaintextNames special-cases for Create &amp; Rename</title>
<updated>2018-01-16T23:25:36+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2018-01-16T23:23:09+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=8951eb2472d6af50554806df2ffd655f53da8bfe'/>
<id>urn:sha1:8951eb2472d6af50554806df2ffd655f53da8bfe</id>
<content type='text'>
gocryptfs.longname.XXX files were considered magic in PlaintextNames
mode, which was wrong.

Fix that and add tests.

Fixes https://github.com/rfjakob/gocryptfs/issues/174
</content>
</entry>
<entry>
<title>fusefrontend: Handle PlaintextNames mode in Link</title>
<updated>2017-12-25T14:07:37+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2017-12-12T13:38:00+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a24342f656f6acd544ec07dada576d57a716b34d'/>
<id>urn:sha1:a24342f656f6acd544ec07dada576d57a716b34d</id>
<content type='text'>
In PlaintextNames mode the "gocryptfs.longname." prefix does not have any
special meaning.

https://github.com/rfjakob/gocryptfs/issues/174
</content>
</entry>
<entry>
<title>fusefrontend_reverse: secure Access against symlink races (somewhat)</title>
<updated>2017-12-06T23:11:35+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-12-06T23:08:10+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=87736eb833dfcf3f110dbd8846752c86aae7b481'/>
<id>urn:sha1:87736eb833dfcf3f110dbd8846752c86aae7b481</id>
<content type='text'>
Unfortunately, faccessat in Linux ignores AT_SYMLINK_NOFOLLOW,
so this is not completely atomic.

Given that the information you get from access is not very
interesting, it seems good enough.

https://github.com/rfjakob/gocryptfs/issues/165
</content>
</entry>
<entry>
<title>tets_helpers: handle t=nil in InitFS</title>
<updated>2017-12-06T22:03:37+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-12-06T22:03:37+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=6bd2da89d3753a589a927517771922a0db76bb36'/>
<id>urn:sha1:6bd2da89d3753a589a927517771922a0db76bb36</id>
<content type='text'>
The reverse tests call InitFS with t=nil. By
calling panic we get a better error message instead
of a generic nil pointer dereference.
</content>
</entry>
<entry>
<title>fusefrontend: allow_other: close race between mkdir and chown</title>
<updated>2017-11-29T12:28:04+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2017-11-29T12:21:28+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=614745ee576760023961fbf815985b90f90ad1d7'/>
<id>urn:sha1:614745ee576760023961fbf815985b90f90ad1d7</id>
<content type='text'>
Fixes the same problem as described in 72b975867a3b9bdf53fc2da62e2ba4a328d7e4ab,
except for directories instead of device nodes.
</content>
</entry>
<entry>
<title>fusefrontend: Handle PlaintextNames mode in Unlink</title>
<updated>2017-11-28T08:28:06+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2017-11-28T00:22:55+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=2591900b6920a71f754779807bafeb01bfef5ab3'/>
<id>urn:sha1:2591900b6920a71f754779807bafeb01bfef5ab3</id>
<content type='text'>
In PlaintextNames mode the "gocryptfs.longname." prefix does not have any
special meaning. We should not attempt to delete any .name files.

Partially fixes https://github.com/rfjakob/gocryptfs/issues/174
</content>
</entry>
<entry>
<title>fusefrontend: Handle PlaintextNames mode in Mknod</title>
<updated>2017-11-28T08:28:06+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2017-11-27T23:20:42+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=3f68b0c09af2b3070346e27b384e80116e515f73'/>
<id>urn:sha1:3f68b0c09af2b3070346e27b384e80116e515f73</id>
<content type='text'>
In PlaintextNames mode the "gocryptfs.longname." prefix does not have any
special meaning. We should not attempt to read the directory IV or to
create special .name files.

Partially fixes https://github.com/rfjakob/gocryptfs/issues/174
</content>
</entry>
<entry>
<title>fusefronted: allow_other: close race between mknod and chown</title>
<updated>2017-11-27T20:04:45+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-11-26T20:59:24+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=72b975867a3b9bdf53fc2da62e2ba4a328d7e4ab'/>
<id>urn:sha1:72b975867a3b9bdf53fc2da62e2ba4a328d7e4ab</id>
<content type='text'>
If the user manages to replace the directory with
a symlink at just the right time, we could be tricked
into chown'ing the wrong file.

This change fixes the race by using fchownat, which
unfortunately is not available on darwin, hence a compat
wrapper is added.

Scenario, as described by @slackner at
https://github.com/rfjakob/gocryptfs/issues/177 :

1. Create a forward mount point with `plaintextnames` enabled
2. Mount as root user with `allow_other`
3. For testing purposes create a file `/tmp/file_owned_by_root`
   which is owned by the root user
4. As a regular user run inside of the GoCryptFS mount:

```
mkdir tempdir
mknod tempdir/file_owned_by_root p &amp;
mv tempdir tempdir2
ln -s /tmp tempdir
```

When the steps are done fast enough and in the right order
(run in a loop!), the device file will be created in
`tempdir`, but the `lchown` will be executed by following
the symlink. As a result, the ownership of the file located
at `/tmp/file_owned_by_root` will be changed.
</content>
</entry>
<entry>
<title>reverse: reject too-long symlink target reads with ENAMETOOLONG</title>
<updated>2017-11-26T20:37:12+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-11-26T20:27:29+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=1bb47b6796c7a2cfb64e6cdff37c43c03c473a81'/>
<id>urn:sha1:1bb47b6796c7a2cfb64e6cdff37c43c03c473a81</id>
<content type='text'>
If the symlink target gets too long due to base64 encoding, we should
return ENAMETOOLONG instead of having the kernel reject the data and
returning an I/O error to the user.

Fixes https://github.com/rfjakob/gocryptfs/issues/167
</content>
</entry>
</feed>
