aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorLines
2017-06-17Work around `pathconf(..., _PC_NAME_MAX)` erroneously returning 0 for some ↵Martin Pärtel-0/+4
source filesystems. Fixes #54
2017-04-19man page: move --block-devices-as-files to misc section.Martin Pärtel-4/+4
2017-04-19Added option: --block-devices-as-filesMartin Pärtel-2/+45
Fixes #53.
2017-04-13Document that -o dev is required for device files and test it.Martin Pärtel-0/+4
Fixes #52.
2017-03-13Fixed compiling on FreeBSD.Martin Pärtel-1/+4
Fixes #51. Test suite changes will come in a later commit.
2017-03-13Fixed some error messages related to --mapMartin Pärtel-3/+3
2017-02-04Deprecate -n as an alias for --no-allow-other.Martin Pärtel-2/+4
This partially addresses #48.
2017-01-29Fixed #47 by not setting `-ofsname=` when it would contain a comma.Martin Pärtel-2/+9
Also banned some other characters that are likely to lead to trouble.
2017-01-29(remove unused enum value)Martin Pärtel-2/+1
2016-10-15Fix #41 (seeking in directory).Martin Pärtel-48/+16
Since version 1.31.1, bindfs has implemented readdir by always reading the entire directory and passing 0 offset to filler, but this does not work if the same directory pointer is rewound and reused. We remove the opendir and closedir implementations (which FUSE permits) and now always opendir() and closedir() in readdir. Alternatively we could have added a rewinddir() to our readdir.
2016-10-02Require at least FUSE 2.8, and 2.9 for lock forwarding.Martin Pärtel-0/+12
Fixes #40.
2016-09-25Remove seekdir() call from bindfs_readdir().Martin Pärtel-2/+3
A regression was introduced in bindfs 1.13.1 with the fix (or rather, workaround) for #28. FUSE's contract for readdir says that if `filler` is passed a zero offset then the readdir implementation should ignore the offset parameter, but we didn't. Fixes #39.
2016-07-31Implemented --enable-lock-forwarding.Martin Pärtel-3/+73
This should address #36.
2016-07-31Mention --enable-ioctl in --help.Martin Pärtel-0/+1
2016-07-31(fix indentation)Martin Pärtel-6/+7
2016-07-31Added option --enable-ioctl to forward ioctl() calls.Martin Pärtel-0/+36
This should address #37.
2016-05-03Added man page entry for --[ug]id-offset.Martin Pärtel-0/+15
2016-05-03Paranoid overflow checking for --uid-offset and --gid-offset.Martin Pärtel-14/+76
2016-05-03Added error checking to parsing --[ug]id-offset value.Martin Pärtel-2/+20
2016-05-03Minor cleanups.Martin Pärtel-14/+6
2016-05-02update according code reviewoc-10/+14
1. use strtoul instead of user_uid and group_gid 2. change uid/gid in chown_new_file and bindfs_chown
2016-04-20implement uid_offset and gid_offset optionsoc-0/+41
uid_offset/gid_offset can translate host user uid/gid to new uid/ gid inside the mountpoint. New uid/gid = <src uid/gid> + offset
2016-01-19Added a comment and some defensive error handling to readdir's filler call.Martin Pärtel-1/+10
2016-01-19Let libfuse manage readdir entries offsetJonathan Lima-1/+1
2015-11-17Show the source dir in the first field on /etc/mtab.Martin Pärtel-0/+37
Fixes #15. Thanks @tyll!
2015-11-15Define _DEFAULT_SOURCE when defining _BSD_SOURCE.Martin Pärtel-0/+2
_BSD_SOURCE has been deprecated in favor of _DEFAULT_SOURCE but both can remain defined for backwards-compatibility.
2015-11-15Fix overflow in parse_byte_count when "long" is 32-bit.Martin Pärtel-2/+2
2015-09-20Implemented --resolved-symlink-deletion and added tests.Martin Pärtel-49/+124
2015-09-20Improved and documented --resolve_symlinks in some edge cases.Martin Pärtel-23/+74
2015-09-13Revert "Don't resolve broken symbolic links."Martin Pärtel-9/+4
I think ENOENT is fine. This reverts commit 5922a236d0ce7fcf911fce6ff7a52b11ddcf2142.
2015-09-13Minor whitespace fixes.Martin Pärtel-5/+5
2015-09-13bindfs_symlink: remove unused real_from.Martin Pärtel-11/+3
2015-09-13bindfs_rmdir: fix leak if lstat fails and only call it when flag is set.Martin Pärtel-8/+12
bindfs_rmdir should never get called on a symlink unless --resolve_symlinks is set (or a race condition changes the target into a symlink). This means we can avoid the lstat if the flag is not set. This may slightly enhance code readability too.
2015-09-13Merge remote-tracking branch 'hstern/resolve-symlinks'Martin Pärtel-83/+266
2015-09-13Added note about problems with some OS X xattr-based features (issue #21).Martin Pärtel-0/+4
2015-09-11Better handle symlinks with destructive system calls.Henry Stern-29/+42
The unlink, rmdir, and rename system calls behave unexpectedly if you resolve the symbolic link and perform the operation on that instead. It would leave a dangling symlink and delete the original instead which is probably not the intention. This commit adds another parameter to process_path to enable or disable the symlink resolution. The bindfs_unlink, bindfs_rmdir and bindfs_rename functions use this parameter to produce the expected result. rm -rf will still behave differently, deleting the contents of the symlinked directory before removing the symlink and not the linked directory.
2015-09-11Don't resolve broken symbolic links.Henry Stern-4/+9
This commit offers an alternative behaviour of not resolving broken symbolic links in case returning ENOENT is undesirable behaviour.
2015-09-11Add functionality to transparently resolve symbolic links.Henry Stern-82/+247
There exist use cases where you would want bindfs to transparently resolve symbolic links, such as when you are creating a chroot environment with a bound fs. This change adds an option, --resolve-symlinks, that modifies the behaviour of the process_path and bindfs_symlink functions. The process_path function is modified to return a mutable char* that must be freed. When settings.resolve_symlinks is enabled the process_path function calls realpath on the relative path to transparently resolve the symbolic link. A side effect of this change is that broken symbolic links will appear in directory listings but any attempt to access the file of that name will return the ENOENT error code. A subsequent commit offers an alternative behaviour of not resolving broken symbolic links. All callers of process_path are modified to check the return value of process_path to make sure realpath and strdup were successful. They also free the result after use to prevent memory leakage. The bindfs_symlink function is modified to return EPERM when resolve-symlinks is enabled. This must be done to prevent access to arbitrary files on the filesystem.
2015-09-09Added recommended osxfuse options to readme and man page.Martin Pärtel-0/+3
As recommended by @retrography in #21.
2015-09-03Put Apple-specific includes and definitions inside an #ifdef __APPLE__.Martin Pärtel-2/+2
2015-09-01Minor patches for MacOSX compilationMahmood Shafeie Zargar-0/+10
2015-08-26Add apple-specific *xattr implementations. Untested.Martin Pärtel-18/+95
Copied from https://github.com/osxfuse/fuse/blob/master/example/fusexmp_fh.c
2014-06-30Implemented rate limiter.Martin Pärtel-14/+276
Fixes #12.
2014-06-11Fix caching of group membersAndrej Lajovic-1/+0
2014-06-05Released 1.12.4.Martin Pärtel-0/+1
2014-06-03Fix --ctime-from-mtime accuracy.Martin Pärtel-3/+7
Use struct stat's st_mtim instead of st_mtime when available. Fixes #16
2014-05-10Use lutimes() when utimensat() unavailable (#6).Martin Pärtel-18/+19
2014-05-10Fix tests (#14)Martin Pärtel-2/+0
2014-05-10(removed trailing spaces)Martin Pärtel-67/+66
2014-05-09Remove fuse utimens dependency for OSXLee Hanxue-0/+19