aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorLines
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
2014-01-22man page: use newer fstab syntax (issue #9).Martin Pärtel-1/+6
2013-09-23Implement fuse_utimens instead of fuse_utime.Martin Pärtel-7/+7
Fixes utime'ing symlinks. Seems to also fix an attribute caching problem.
2013-07-22Changed home page to http://bindfs.org/Martin Pärtel-5/+3
2013-07-22Document chmod-filter on man-page.Martin Pärtel-0/+6
2013-07-22Rename chmod-perms to chmod-filter.Martin Pärtel-8/+7
2013-07-22(free chmod_permchain in at_exit)Martin Pärtel-0/+2
2013-07-22Alter chmod permissions when using --chmod-permsAnton Ageev-0/+14
2013-05-07Add -pthread to LDFLAGSMartin Pärtel-1/+1
fuse's pkg-config no longer includes it.
2013-03-01Rename --user/group to --force-user/group.Martin Pärtel-9/+49
The previous names were deprecated as they conflicted with standard mount options. --owner was also deprecated for consistency. The shorthands -u and -g were not deprecated. This fixes issue 25.
2012-09-15Be single-threaded by default. Documented a race condition.Martin Pärtel-9/+29
2012-09-14Added a note about a race condition when creating new files.Martin Pärtel-0/+2
2012-09-14Use my_dirname instead of dirname for thread-safety.Martin Pärtel-3/+3
2012-09-14Implemented my_dirname and added unit tests for it.Martin Pärtel-0/+34
2012-09-14Respect setgid bit on directories when using --create-as-userJonathan Dieter-1/+11
Signed-off-by: Jonathan Dieter <jdieter@lesbg.com>
2012-07-15process_path in readdirMartin Pärtel-0/+2
2012-07-15Fix DPRINTFMartin Pärtel-1/+1
2012-07-04Cache user data for user_belongs_to_group().Martin Pärtel-55/+377
This considerably speeds up --mirror @group.
2012-07-03Use NAME_MAX if pathconf fails.Martin Pärtel-3/+1
Apparently it's not rare.
2012-07-03Fixed permchain.operands size and reordered it a bit.Martin Pärtel-3/+3
2012-07-03Fail readdir() if pathconf fails.Martin Pärtel-3/+7
2012-07-03Made strerror() safe to use in DPRINTF.Martin Pärtel-3/+35
2012-07-03bindfs: avoid crash due to too-short allocationJan Engelhardt-3/+8
pathconf() can return negative values to indicate an error. Using the result of pathconf naïvely in arithmetic is therefore inappropriate.
2012-07-03bindfs: reduce memory holes in struct permchainJan Engelhardt-2/+2
Reduce holes in struct permchain by appropriately sizing and reordering members.
2012-07-03build: better placement of variablesJan Engelhardt-2/+2
automake options are best set in configure.ac, so they apply not just to the directory, but the whole project. Also move fuse_CFLAGS into AM_CPPFLAGS, because it actually consists of preprocessor directives. (pkgconfig misnamed CFLAGS.)
2012-07-03build: do not change CFLAGSJan Engelhardt-1/+2
CFLAGS must not be touched: it is a user variable. Your previous way of doing it meant that `export CFLAGS="-O1"; ./configure;` never had any effect.
2012-06-18Fixed a memory error in src/usermap.c.Martin Pärtel-3/+10
2012-05-18Use readdir_r() for thread-safety.Martin Pärtel-4/+18
2012-05-18Fixed --create-as-user.Martin Pärtel-118/+51
2012-04-05Made -ouse_ino and -oreaddir_ino the default to mirror inodes.Martin Pärtel-0/+4
2012-03-26Made --map affect chown/chgrp results.Martin Pärtel-4/+8
2012-03-13(oops)Martin Pärtel-1/+1
2012-03-13Added root check for --map.Martin Pärtel-0/+6
2012-03-13Added --map.Martin Pärtel-64/+431
2012-03-02A little cleanup.Martin Pärtel-10/+6
2012-03-02Cleaned up main() a little.Martin Pärtel-45/+56