<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/tests/matrix, 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-16T23:25:36+00:00</updated>
<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: 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>fusefrontend: Fix longname handling for renames with existing target</title>
<updated>2017-11-25T15:19:09+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2017-11-25T00:56:56+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=9f56b33e0c8701085189aa77463f1b471b70a705'/>
<id>urn:sha1:9f56b33e0c8701085189aa77463f1b471b70a705</id>
<content type='text'>
Fixes https://github.com/rfjakob/gocryptfs/issues/170

Steps to reproduce the problem:

* Create a regular forward mount point
* Create a file with a shortname and one with a long filename
* Try to run 'mv &lt;shortname&gt; &lt;longname&gt;'

This should actually work and replace the existing file, but instead it
fails with:

    mv: cannot move '&lt;shortname&gt;' to '&lt;longname&gt;': File exists

The problem is the creation of the .name file. If the target already exists
we can safely ignore the EEXIST error and just keep the existing .name file.
</content>
</entry>
<entry>
<title>Drop Go 1.4 compatability code everywhere</title>
<updated>2017-03-05T16:44:14+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-03-05T16:44:14+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=966308eeb7793a4a8ca578e160981e3b059b82e6'/>
<id>urn:sha1:966308eeb7793a4a8ca578e160981e3b059b82e6</id>
<content type='text'>
Yields a nice reduction in code size.
</content>
</entry>
<entry>
<title>tests: adapt dir overwrite test for Go 1.8</title>
<updated>2017-02-20T20:27:37+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-02-20T20:22:05+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b056776a013813e251aa37027c3aaa3f1e22d7c8'/>
<id>urn:sha1:b056776a013813e251aa37027c3aaa3f1e22d7c8</id>
<content type='text'>
In Go 1.8, os.Rename refuses to overwrite an empty directory.
Switch to syscall.Rename, which still does the right thing.
</content>
</entry>
<entry>
<title>tests: OSX compat: wrap Stat_t atime extract</title>
<updated>2017-02-16T18:39:56+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-02-16T18:37:10+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=0b19e637c986f602dad95be2570b2bd125677714'/>
<id>urn:sha1:0b19e637c986f602dad95be2570b2bd125677714</id>
<content type='text'>
Linux has st.Atim, st.Mtim,
OSX hat st.Atimespec, st.Mtimespec.

Reported at https://github.com/rfjakob/gocryptfs/issues/15#issuecomment-279130217
</content>
</entry>
<entry>
<title>tests: add TestLongLink (currently broken)</title>
<updated>2017-01-26T19:49:35+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-01-26T19:49:35+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=d2224aec5833ac7fabd73c56e43f3a4c820ac1ec'/>
<id>urn:sha1:d2224aec5833ac7fabd73c56e43f3a4c820ac1ec</id>
<content type='text'>
</content>
</entry>
</feed>
