Commit Graph

520 Commits

Author SHA1 Message Date
d3d329fb43 add gtest build 2017-08-06 22:35:56 -04:00
b14ca2b7c7 Merge pull request #366 from benrubson/man
Man page
2017-08-06 19:17:59 -07:00
b1816ae57e Merge pull request #368 from benrubson/syslogpid
Syslog options
2017-08-06 19:15:40 -07:00
5406ea0ac8 Merge pull request #372 from vgough/dirent
replace most compile-time platform checks with build-time checks
2017-08-06 18:17:30 -07:00
6c7ad3e534 replace most compile-time platform checks with build-time checks 2017-08-06 18:10:52 -07:00
dcc7ff83ed Merge pull request #370 from benrubson/cmakefreebsd
Update FreeBSD man destination
2017-08-06 17:45:49 -07:00
ec44aace74 Merge pull request #371 from vgough/vendor-update
Vendor update
2017-08-06 09:02:22 -07:00
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
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
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
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
42566823f8 Update FreeBSD man destination 2017-08-06 11:26:09 +02:00
c2f8a28912 Merge pull request #369 from vgough/gitvendor
use git-vendor to track bundled dependencies
2017-08-06 00:18:44 -07:00
addee4fa44 fix cmake issues 2017-08-06 00:15:57 -07:00
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
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
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
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
d1e14b4ac8 switch to vendored easylogging 2017-08-05 23:23:09 -07:00
24a8314659 update tinyxml2 build rules 2017-08-05 23:23:09 -07:00
75c63e9267 drop old internal tinyxml2 2017-08-05 23:23:09 -07:00
69f42276a0 Tune syslog logging, typo 2017-08-05 13:45:31 +02:00
04e23b50d8 Tune syslog logging 2017-08-05 13:40:52 +02:00
8c9886d6b0 Add missing options to man page and reorganize it, typo 2017-08-05 13:16:29 +02:00
dd42f97e43 Add missing options to man page and reorganize it 2017-08-05 13:12:38 +02:00
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
cb954aeae5 Merge pull request #364 from vgough/lint-fixes
Lots of lint fixes from clang-tidy
2017-08-04 00:03:45 -07:00
f953a87c66 disable some lint checks 2017-08-03 23:26:32 -07:00
c947c684c7 lint: misc cleanup, including possible NPE 2017-08-03 23:26:12 -07:00
d7852e6f56 modernize: braces around statements 2017-08-03 22:46:34 -07:00
f9d22c4f18 modernize: unindent else after return 2017-08-03 22:43:14 -07:00
c37ab8e671 modernize: explicit conversions, braces around blocks 2017-08-03 22:42:39 -07:00
7a4e0c41db modernize: use override, using aliases 2017-08-03 22:27:18 -07:00
71e2bcc84d modernize: =default, pass by value 2017-08-03 22:18:25 -07:00
169101c80b modernize: use bool literals, raw string literal 2017-08-03 22:10:25 -07:00
5a99506ea8 modernize: use C++ headers, auto, make_shared 2017-08-03 22:00:32 -07:00
b04c4124d4 modernize-use-nullptr: replace NULL, 0 with nullptr 2017-08-03 21:42:30 -07:00
96b3f8c38d Merge pull request #363 from vgough/clang-tidy-build
add clang-tidy build support
2017-08-03 21:31:08 -07:00
fea77bad4e add clang-tidy build support 2017-08-03 21:27:47 -07:00
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
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
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
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
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
779b69208a Use PROGRAMS to install encfssh with executable permissions 2017-07-28 09:04:34 +02:00
514bfd34da Update changelog + bump version for v1.9.2 v1.9.2 2017-07-25 20:26:45 +02:00
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
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
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
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