| Age | Commit message (Collapse) | Author | Lines | 
|---|
|  |  | 
|  |  | 
|  |  | 
|  | Reported by Albert Berger | 
|  | Reported by Jose R. Guzman | 
|  | This ensures that fuse functions correctly on stateless operating systems
without requiring use of the site configuration directory (/etc/).
Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com> | 
|  | Found by Tavis Ormandy (CVE-2015-3202). | 
|  | This creates a separate device file descriptor for each processing thread,
which might improve performance. | 
|  | New functions: fuse_chan_get(), fuse_chan_put().  Removed function:
fuse_chan_destroy(). | 
|  |  | 
|  |  | 
|  | to properly restore the default signal handler.
Reported by: Chris Johnson <johnsocg@gmail.com> | 
|  | Reported by Eric Biggers | 
|  |  | 
|  | See renameat2() system call in linux-3.15 and later kernels. | 
|  |  | 
|  | This allows the filesystem to specify the time granularity it
supports when the kernel is responsible for updating times
("writeback_cache" option). | 
|  | ...options.  Uids/gids larger than 2147483647 would result in EINVAL when
mounting the filesystem.  This also needs a fix in the kernel. | 
|  | and fuse_notify_delete()
Reported by Han-Wen Nienhuys | 
|  | to zero in all cases.
Reported by Daniel Iwan. | 
|  | Reuse the old "readdir" callback, but add a flags argument, that has
FUSE_READDIR_PLUS in case this is a "plus" version.  Filesystems can safely
ignore this flag, but if they want they can add optimizations based on it:
i.e. only retrieve the full attributes in PLUS mode.
The filler function is also given a flags argument and the filesystem can
set FUSE_FILL_DIR_PLUS if all the attributes in "stat" are valid. | 
|  |  | 
|  |  | 
|  | Asynchronous direct I/O is supported by linux kernels 3.13 and
later, writeback caching is supported by 3.14 and later. | 
|  |  | 
|  | This allows compiling fuse with musl. | 
|  |  | 
|  | Distribute ulockmgr separately.  It is not needed for the building of
libfuse, only fusexmp_fh.  Check ulockmgr library in ./configure and if not
disable remote-lock suport in fusexmp_fh. | 
|  | Allow 2.X and 3.X to coexist.  Includes are now stored under
/usr/include/fuse3 and library is named libfuse3.*.  Invoke pkg-config with
"fuse3" as the first argument to build with version 3 of the library. | 
|  | add AC_SYS_LARGEFILE to your configure.ac instead. | 
|  |  | 
|  | - fuse_kern_unmount closes handle (e.g. 19)
- a thread in my process opens a file - the OS assigns newly freed
handle (i.e. 19)
- fuse_kern_chan_destroy closes the same handle (i.e. 19)
- a thread in my process opens another file - the OS assigns newly
freed handle (i.e. 19)
- * MAYHEM *
Reported by Dan Greenfield | 
|  |  | 
|  | - fuse_kern_unmount closes handle (e.g. 19)
- a thread in my process opens a file - the OS assigns newly freed
handle (i.e. 19)
- fuse_kern_chan_destroy closes the same handle (i.e. 19)
- a thread in my process opens another file - the OS assigns newly
freed handle (i.e. 19)
- * MAYHEM *
Reported by Dan Greenfield | 
|  |  | 
|  | Exiting a worker my race with cancelling that same worker.  This caused a
segmenation fault.
Reported and tested by Anatol Pomozov | 
|  | FUSE_CFLAGS defines -D_FILE_OFFSET_BITS=64.  There are three problems
with this:
(1) A larger program using libfuse might have modules compiled with
and without FUSE_CFLAGS, which, if LFS is not enabled and the platform
is 32 bit, would result in a fatal mix of 32 and 64 bit off_t.  (This
would, of course, be a bug, but I think there is a better way to
detect this -- see below)
(2) Programs may need to be adjusted to support LFS.  It's the
intention of the LFS standard that the _programmer_ enables LFS once
the program has been checked/adjusted.
(3) _FILE_OFFSET_BITS does not need to be defined at all on 64 bit
Linux.  64 bit off_t is the default there.
So I think it's better not to force -D_FILE_OFFSET_BITS=64, and
because of (3) I also think you shouldn't test for it.
However off_t must still be 64 bits, so how to enforce that?  C1X will
define static assertions[1], and these can be used to check the size
of off_t.
Not all compilers support static assertions yet, although several do.
Therefore I have surrounded the static assertion with a conservative
check that the compiler is GCC >= 4.6.  In the long run, this test can
be removed and you can just use 'static_assert'. | 
|  |  | 
|  | Change the type of fuse_ino_t from 'unsigned long' to 'uint64_t'.  This only
changes the size on 32bit architectures. | 
|  | for consistency.
Reported by Vladimir Rutsky | 
|  | when storing a newly allocated string for format "%s", free the previous value
stored at that location.
Reported by Marco Schuster | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  |