No description
Find a file
CismonX bdfa812d79
backend: respect the BOOKMARK_DELETE_DIR flag
Following commit 2e3685f217,
make sure all backends check this flag and return correct error codes.

Normally this is not mandatory, since the kernel looks up
the directory entry to be removed, and fails if the system call
is inappropriate (e.g., calling rmdir() on a regular file).
This happens before FUSE_UNLINK or FUSE_RMDIR is sent to the server.

However, when not in exclusive mode, there is a short window that
TOCTOU problem may occur, which may lead to undesired behavior
(e.g., deletion of a non-empty directory) or even the corruption of
bookmark storage if not properly checked.

Also explain this flag in the user manual.
2025-03-27 12:36:27 +08:00
.builds ci: add history build urls 2025-02-27 11:06:00 +08:00
doc backend: respect the BOOKMARK_DELETE_DIR flag 2025-03-27 12:36:27 +08:00
m4 build: rename autoconf helper macros 2025-03-14 07:44:51 +08:00
src backend: respect the BOOKMARK_DELETE_DIR flag 2025-03-27 12:36:27 +08:00
tests test: misc fix and refactor 2025-03-24 19:30:32 +08:00
.gitignore test: init tests; add tests for util lib 2025-02-08 01:48:07 +08:00
bookmarkfs.pc.in chore: update links 2025-02-05 18:11:37 +08:00
configure.ac build: hard fail on unsupported platforms 2025-03-21 09:06:30 +08:00
COPYING init: prepare for Savannah 2024-12-31 18:09:03 +08:00
INSTALL.md doc: misc update 2025-03-21 12:57:01 +08:00
Makefile.am init: prepare for Savannah 2024-12-31 18:09:03 +08:00
README.md chore: update links 2025-02-05 18:11:37 +08:00

About

BookmarkFS is a FUSE-based pseudo-filesystem which provides an interface to the bookmark data of web browsers.

Currently, the following browsers (and their derivatives) are supported:

  • Firefox
  • Chromium

Getting Started

See 'INSTALL.md' for instructions on how to build and install BookmarkFS. See the files under 'doc/' for the user manual.

Project homepage: https://www.nongnu.org/bookmarkfs/.

Copying

BookmarkFS is free software, distributed under the terms of the GNU General Public License, either version 3, or any later version of the license. For more information, see the file 'COPYING'.

The user manual and other supporting files in this codebase are distributed under separeate licenses. Refer to the corresponding license notice for details.