Commit Graph

511 Commits

Author SHA1 Message Date
Valient Gough
dcc7ff83ed Merge pull request #370 from benrubson/cmakefreebsd
Update FreeBSD man destination
2017-08-06 17:45:49 -07:00
Valient Gough
ec44aace74 Merge pull request #371 from vgough/vendor-update
Vendor update
2017-08-06 09:02:22 -07:00
Valient Gough
d8aa32454c
Update "tinyxml2" from "https://github.com/leethomason/tinyxml2.git@5.0.1"
git-vendor-name: tinyxml2
git-vendor-dir: vendor/github.com/leethomason/tinyxml2
git-vendor-repository: https://github.com/leethomason/tinyxml2.git
git-vendor-ref: 5.0.1
2017-08-06 08:55:45 -07:00
Valient Gough
ea931d7a15 Squashed 'vendor/github.com/leethomason/tinyxml2/' changes from 02d2764f..37bc3aca
REVERT: 02d2764f Merge pull request #593 from Dmitry-Me/testDeletionViaDocument
REVERT: 8d1bfbbf Merge pull request #592 from Dmitry-Me/clarifyTestOutput
REVERT: 15295807 Merge pull request #591 from Dmitry-Me/properIndentDirectives
REVERT: 48725fa8 Merge pull request #590 from Dmitry-Me/betterVariableName
REVERT: e5790dba Test nodes deletion via document
REVERT: 6f4c4e72 Clarify and simplify test output
REVERT: de381df3 Indent directives consistently with surrounding code
REVERT: effab6ff Better variable name
REVERT: f3f9925f update docs
REVERT: aca4fb16 new docs
REVERT: 528986ff update readme
REVERT: 75737563 add docs
REVERT: 646af8d2 Merge pull request #582 from Dmitry-Me/distinctDefaultAndReplacement
REVERT: 05705801 Merge pull request #581 from Dmitry-Me/testQueryingAttributesBetter
REVERT: 80379a33 Merge pull request #580 from Dmitry-Me/checkLoadSaveResult
REVERT: bf9b3a26 remove code that creates directory. add file in out directory so that git creates the directory
REVERT: 3d20c5de Use distinct values as default and replacement values
REVERT: 2087a276 Test querying attributes thoroughly
REVERT: 46b70ce5 Check result of LoadFile()/SaveFile()
REVERT: 3a6e51a1 fix build issue
REVERT: e4dc7218 fix an issue on windows
REVERT: fc2a0017 Merge pull request #578 from Dmitry-Me/checkReadingResults
REVERT: cd336999 Merge pull request #577 from Dmitry-Me/checkParseResult
REVERT: 7096e779 Merge pull request #573 from kbinny62/master
REVERT: d1b82825 Check various stages of reading the XML file
REVERT: 68578f47 Check result of Parse() call
REVERT: c1f1de72 Merge pull request #575 from Dmitry-Me/extractDuplicatedString
REVERT: 5d1aec10 Extract duplicated text string
REVERT: 9720fbaf xmltest.cpp: path separator is '\\' under WIN32
REVERT: bf29a152 xmltest: create dir resources/out to avoid crashes

git-subtree-dir: vendor/github.com/leethomason/tinyxml2
git-subtree-split: 37bc3aca429f0164adf68c23444540b4a24b5778
2017-08-06 08:55:45 -07:00
Valient Gough
cb95316360
Update "easylogging" from "https://github.com/muflihun/easyloggingpp@v9.95.0"
git-vendor-name: easylogging
git-vendor-dir: vendor/github.com/muflihun/easyloggingpp
git-vendor-repository: https://github.com/muflihun/easyloggingpp
git-vendor-ref: v9.95.0
2017-08-06 08:54:20 -07:00
Valient Gough
e405efee07 Squashed 'vendor/github.com/muflihun/easyloggingpp/' changes from 850ea2a9..46859704
REVERT: 850ea2a9 Merge pull request #559 from muflihun/develop
REVERT: f33a6239 Update README.md

git-subtree-dir: vendor/github.com/muflihun/easyloggingpp
git-subtree-split: 468597048ed3797e9556237f8a3c014944ae126b
2017-08-06 08:54:20 -07:00
benrubson
42566823f8 Update FreeBSD man destination 2017-08-06 11:26:09 +02:00
Valient Gough
c2f8a28912 Merge pull request #369 from vgough/gitvendor
use git-vendor to track bundled dependencies
2017-08-06 00:18:44 -07:00
Valient Gough
addee4fa44
fix cmake issues 2017-08-06 00:15:57 -07:00
Valient Gough
59d74aea1f Squashed 'vendor/github.com/muflihun/easyloggingpp/' content from commit 850ea2a9
git-subtree-dir: vendor/github.com/muflihun/easyloggingpp
git-subtree-split: 850ea2a9f151ed648a989dda1cf44e503e45831f
2017-08-05 23:23:41 -07:00
Valient Gough
5f0806c5cc Add "easylogging" from "https://github.com/muflihun/easyloggingpp@master"
git-vendor-name: easylogging
git-vendor-dir: vendor/github.com/muflihun/easyloggingpp
git-vendor-repository: https://github.com/muflihun/easyloggingpp
git-vendor-ref: master
2017-08-05 23:23:41 -07:00
Valient Gough
57ff0e2fe8 Squashed 'vendor/github.com/leethomason/tinyxml2/' content from commit 02d2764f
git-subtree-dir: vendor/github.com/leethomason/tinyxml2
git-subtree-split: 02d2764fd794422c6d3c86cebe1c892e5a592d23
2017-08-05 23:23:33 -07:00
Valient Gough
795b26a633 Add "tinyxml2" from "https://github.com/leethomason/tinyxml2.git@master"
git-vendor-name: tinyxml2
git-vendor-dir: vendor/github.com/leethomason/tinyxml2
git-vendor-repository: https://github.com/leethomason/tinyxml2.git
git-vendor-ref: master
2017-08-05 23:23:33 -07:00
Valient Gough
d1e14b4ac8
switch to vendored easylogging 2017-08-05 23:23:09 -07:00
Valient Gough
24a8314659
update tinyxml2 build rules 2017-08-05 23:23:09 -07:00
Valient Gough
75c63e9267
drop old internal tinyxml2 2017-08-05 23:23:09 -07:00
Valient Gough
9e55fd35bd Merge pull request #262 from Sceptive/master
Added Camellia support with 128/196/256 bits key size support
2017-08-04 00:35:06 -07:00
Valient Gough
cb954aeae5 Merge pull request #364 from vgough/lint-fixes
Lots of lint fixes from clang-tidy
2017-08-04 00:03:45 -07:00
Valient Gough
f953a87c66
disable some lint checks 2017-08-03 23:26:32 -07:00
Valient Gough
c947c684c7
lint: misc cleanup, including possible NPE 2017-08-03 23:26:12 -07:00
Valient Gough
d7852e6f56
modernize: braces around statements 2017-08-03 22:46:34 -07:00
Valient Gough
f9d22c4f18
modernize: unindent else after return 2017-08-03 22:43:14 -07:00
Valient Gough
c37ab8e671
modernize: explicit conversions, braces around blocks 2017-08-03 22:42:39 -07:00
Valient Gough
7a4e0c41db
modernize: use override, using aliases 2017-08-03 22:27:18 -07:00
Valient Gough
71e2bcc84d
modernize: =default, pass by value 2017-08-03 22:18:25 -07:00
Valient Gough
169101c80b
modernize: use bool literals, raw string literal 2017-08-03 22:10:25 -07:00
Valient Gough
5a99506ea8
modernize: use C++ headers, auto, make_shared 2017-08-03 22:00:32 -07:00
Valient Gough
b04c4124d4
modernize-use-nullptr: replace NULL, 0 with nullptr 2017-08-03 21:42:30 -07:00
Valient Gough
96b3f8c38d Merge pull request #363 from vgough/clang-tidy-build
add clang-tidy build support
2017-08-03 21:31:08 -07:00
Valient Gough
fea77bad4e
add clang-tidy build support 2017-08-03 21:27:47 -07:00
Jakob Unterwurzacher
22a88c0e48 Drop unmount logic from test.sh
Unmounting leftover mounts is a convenience function for developers,
but it would need to be expanded to work on MacOS and FreeBSD, which
adds more complexity.

Let's keep test.sh at the bare minimum that is needed for its purpose:
running the tests.
2017-08-01 20:39:31 +02:00
Jakob Unterwurzacher
9e394a46c0 Drop cmake test logic and just run test.sh
We had the situation that "make test" runs the test suite but does not
show useful error messages (see
https://github.com/vgough/encfs/issues/358 for an example).

"make check" did the right thing by using the "--output-on-failure"
feature, but depended on "make test" being available as well. This
means users will continue to run "make test".

This commits drops the cmake test logic and adds a dumb "make test"
target that simply runs test.sh.
2017-07-30 21:15:37 +02:00
benrubson
f6a3838e60 Fix xattr behavoir on symlinks
* Make all xattr operations on link themselves
* Be sure to test links and not their target
* Add extended attributes tests
2017-07-30 20:26:42 +02:00
Jakob Unterwurzacher
8a2c03d8a9 travis ci: enable gcc, call build.sh && test.sh
gcc is default compiler on most distributions, we should
also test with it.

build.sh exists and should be tested as well, so why not use
it in Travis.
test.sh outputs much more details than "make check", so
run it as well.

Additionally, make build.sh and test.sh work when called from
other directories.
2017-07-29 21:53:34 +02:00
Jakob Unterwurzacher
6ed2001c2e travis ci: upgrade to trusty, use system cmake
On July 18, Travis upgraded their default build VM
to Ubuntu Trusty. Trusty has cmake 3.5.1, which allows us to
drop our bundled version.

We explicitely set "dist: trusty" to prevent our build jobs
from being routed to an older build VM.
2017-07-29 19:43:03 +02:00
Rogelio Domínguez Hernández
779b69208a Use PROGRAMS to install encfssh with executable permissions 2017-07-28 09:04:34 +02:00
Jakob Unterwurzacher
514bfd34da Update changelog + bump version for v1.9.2 2017-07-25 20:26:45 +02:00
Jakob Unterwurzacher
9ed8d704dd eraseNode: erase the right FileNode
When a file is opened twice concurrently, we can end up with
two separate FileNodes for a single path.

This seems to be the root cause for the crashes reported under
https://github.com/vgough/encfs/issues/214 , as commit

  af64702dd0
  "Simplify FileNode Cache. Remove the need for PlaceHolder."

removed the awareness for different FileNodes.

The crashes have been fixed by

  e2f0f8e3c6
  "fuseFhMap: translate FUSE file handles to FileNode pointers"

at the cost of introducing a memory leak. One of the two FileNodes
would stay in fuseFhMap forever.

This commit makes eraseNode again aware of different FileNodes for
a single path, makes sure the right FileNode is erased, and fixes
the memory leak.
2017-07-25 09:53:02 +02:00
Jakob Unterwurzacher
e2f0f8e3c6 fuseFhMap: translate FUSE file handles to FileNode pointers
Previously, we used raw pointers to the FileNode as FUSE file handles.

With this change, we instead pass an arbitrary value (a uint64 counter)
to the kernel as FUSE file handle, and use the "fuseFhMap" look-up table
to convert back to the FileNode pointer.

This gets rid of a lot of scary void pointer casts. The performance
cost is not measurable.
2017-07-24 22:41:35 +02:00
Jakob Unterwurzacher
9a4ea2007f withFileNode: move canary check to its own function
The do_op closure is complicated enough. Get the canary check out
of the way to not make it even more complicated.

Also, use an explicitely atomic type for the canary.
2017-07-22 21:11:41 +02:00
Jakob Unterwurzacher
d2ee96d2bd tests: print "mode=standard", "mode=paranoia" progress
We run through everything in normal.t.pl two times, once
in "standard" mode and once in "paranoia" mode. Print some
context. Also, bail out if file creation fails.

Output now looks like this:

$ ./test.sh
tests/normal.t.pl ...
runTests: mode=standard
tests/normal.t.pl ... 54/116
runTests: mode=paranoia
tests/normal.t.pl ... ok
tests/reverse.t.pl .. ok
All tests successful.
Files=2, Tests=141, 21 wallclock secs ( 0.04 usr  0.00 sys + 20.03 cusr  0.36 csys = 20.43 CPU)
Result: PASS
2017-07-22 19:05:33 +02:00
Jakob Unterwurzacher
282df21a49 DirNode: add a few comments
...to make the code easier to understand.

No code changes!
2017-07-22 12:40:28 +02:00
Jakob Unterwurzacher
30000d8e2c tests: add fsstress-encfs.sh stress test
Mount an EncFS filesystem in /tmp and run fsstress against it
in an infinite loop, only exiting on errors.

Ported over from gocryptfs
( ccf1a84e41/tests/stress_tests/fsstress-gocryptfs.bash )
2017-07-21 23:30:53 +02:00
Jakob Unterwurzacher
3bfaf792e6 writeV6Config: cast booleans to int
The tinyxml2 library used by Arch Linux represents
booleans as "true" and "false" instead of "0" and "1".

These fail to load when read back later and will always be
interpreted as false, as seen in
https://github.com/vgough/encfs/issues/343 .

Cast the booleans to int to force representation
as "0" and "1" in all tinyxml2 variants.
2017-07-19 22:57:35 +02:00
Jakob Unterwurzacher
64b01a0869 tests: check if the second mount works as well
Should prevent things like https://github.com/vgough/encfs/issues/343
from happening again.
2017-07-19 22:57:35 +02:00
Jakob Unterwurzacher
c8ff1f94e8 Add a canary value to FileNode
Adds a uint32 value to FileNode that is initialized to an
arbitrary value (CANARY_OK) in the constructor, and reset
when the reference is dropped (CANARY_RELEASED,
CANARY_DESTROYED).

The canary is checked on each withFileNode call.

Makes it much easier to trigger the bug seen in
https://github.com/vgough/encfs/issues/214 .
2017-07-19 22:57:35 +02:00
Jakob Unterwurzacher
319f7b4525 tests: circleci: drop fuse tests
circleci does not support fuse. Just run checkops.
2017-06-25 18:37:08 +02:00
Maya Rashish
d75851d339 Accept netbsd's librefuse as a FUSE library 2017-06-25 13:47:26 +02:00
benrubson
8d8506f2eb Correctly detect attr binary during tests 2017-06-25 13:22:45 +02:00
benrubson
d216cc4208 Improve auto unmount 2017-06-10 18:51:15 +02:00