<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/tests/reverse, branch v1.4.4</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4.4</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=v1.4.4'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2018-03-07T08:45:20+00:00</updated>
<entry>
<title>tests: convert remaining wget calls to dl-linux-tarball.bash helper</title>
<updated>2018-03-07T08:45:20+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2018-03-07T08:45:20+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=02693912e59b44f463c4b14d6a3168fa24857e6f'/>
<id>urn:sha1:02693912e59b44f463c4b14d6a3168fa24857e6f</id>
<content type='text'>
Makes the scripts work when wget is not available (macos)
</content>
</entry>
<entry>
<title>macos: fix fd leak in reverse tests</title>
<updated>2018-03-05T22:21:08+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2018-03-05T22:21:08+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=18d4159d18b370f82dafd1c7627a6eb1f386cdfb'/>
<id>urn:sha1:18d4159d18b370f82dafd1c7627a6eb1f386cdfb</id>
<content type='text'>
Causes "Resource busy" unmount failures on macos
</content>
</entry>
<entry>
<title>macos: adjust TestTooLongSymlink length for darwin</title>
<updated>2018-03-05T20:23:57+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2018-03-05T20:23:57+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b820fa691ddae7b3111de823c8a45666f9e59c70'/>
<id>urn:sha1:b820fa691ddae7b3111de823c8a45666f9e59c70</id>
<content type='text'>
Limit is much lower than on linux
</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>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>
<entry>
<title>fusefrontend_reverse: Do not mix up cache information for different directories</title>
<updated>2017-11-25T15:20:48+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2017-11-23T23:44:06+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=90687215a42b2e074f3b5a85cf344ca998fa34ac'/>
<id>urn:sha1:90687215a42b2e074f3b5a85cf344ca998fa34ac</id>
<content type='text'>
Fixes https://github.com/rfjakob/gocryptfs/issues/168

Steps to reproduce the problem:

* Create a regular reverse mount point
* Create files with the same very long name in multiple directories - so far
  everything works as expected, and it will appear with a different name each
  time, for example, gocryptfs.longname.A in directory A and
  gocryptfs.longname.B in directory B
* Try to access a path with A/gocryptfs.longname.B or B/gocryptfs.longname.A -
  this should fail, but it actually works.

The problem is that the longname cache only uses the path as key and not the
dir or divIV. Assume an attacker can directly interact with a reverse mount and
knows the relation longname path -&gt; unencoded path in one directory, it allows
to test if the same unencoded filename appears in any other directory.
</content>
</entry>
<entry>
<title>fusefrontend_reverse: workaround ext4 test failure</title>
<updated>2017-10-03T19:15:17+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-10-03T19:15:17+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=64e5906ffa1f225a51048b3d0ac6b1a09e2ca170'/>
<id>urn:sha1:64e5906ffa1f225a51048b3d0ac6b1a09e2ca170</id>
<content type='text'>
The extended TestLongnameStat() exposes a pathological case
when run on ext4, as ext4 reuses inode numbers immediately.

This change modifies the test to not delete the files immediately,
so the inode numbers cannot be reused immediately.

Fix for the underlying issue is a TODO.
</content>
</entry>
<entry>
<title>fusefrontend_reverse: fix 176-byte names</title>
<updated>2017-10-01T11:50:25+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-10-01T11:50:25+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=4da245c69d7994efec75e1deaef56a03020d39db'/>
<id>urn:sha1:4da245c69d7994efec75e1deaef56a03020d39db</id>
<content type='text'>
A file with a name of exactly 176 bytes length caused this error:

  ls: cannot access ./tmp/dsg/sXSGJLTuZuW1FarwIkJs0w/b6mGjdxIRpaeanTo0rbh0A/QjMRrQZC_4WLhmHI1UOBcA/gocryptfs.longname.QV-UipdDXeUVdl05WruoEzBNPrQCfpu6OzJL0_QnDKY: No such file or directory
  ls: cannot access ./tmp/dsg/sXSGJLTuZuW1FarwIkJs0w/b6mGjdxIRpaeanTo0rbh0A/QjMRrQZC_4WLhmHI1UOBcA/gocryptfs.longname.QV-UipdDXeUVdl05WruoEzBNPrQCfpu6OzJL0_QnDKY.name: No such file or directory
  -????????? ? ?     ?             ?            ? gocryptfs.longname.QV-UipdDXeUVdl05WruoEzBNPrQCfpu6OzJL0_QnDKY
  -????????? ? ?     ?             ?            ? gocryptfs.longname.QV-UipdDXeUVdl05WruoEzBNPrQCfpu6OzJL0_QnDKY.name

Root cause was a wrong shortNameMax constant that failed to
account for the obligatory padding byte.

Fix the constant and also expand the TestLongnameStat test case
to test ALL file name lengths from 1-255 bytes.

Fixes https://github.com/rfjakob/gocryptfs/issues/143 .
</content>
</entry>
<entry>
<title>fusefrontend_reverse: return ENOENT for undecryptable names</title>
<updated>2017-07-27T18:31:22+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-07-27T18:31:22+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=d5133ca5ac4f241ff22ef145a3605a9fdb341bb6'/>
<id>urn:sha1:d5133ca5ac4f241ff22ef145a3605a9fdb341bb6</id>
<content type='text'>
This was working until DecryptName switched to returning
EBADMSG instead of EINVAL.

Add a test to catch the regression next time.
</content>
</entry>
<entry>
<title>tests: reverse: don't run tests that ignore "-plaintextnames" twice</title>
<updated>2017-03-07T19:53:58+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2017-03-07T19:53:58+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a80d798c2deab44e2abc37eeae59546f0d7eec40'/>
<id>urn:sha1:a80d798c2deab44e2abc37eeae59546f0d7eec40</id>
<content type='text'>
TestMain() runs all tests twice, once with plaintextnames=true and once
with false. Several tests mount their own filesystem and ignore the
plaintextnames variable. It makes no sense to run them twice, so
skip execution when plaintextnames is set.
</content>
</entry>
</feed>
