Files
libfuse/lib/fuse_versionscript
T
Darrick J. Wong 5d8b9a39a1 mount_service: add systemd socket service mounting helper
Create a mount helper program that can start a fuse server that runs as
a socket-based systemd service, and a new libfuse module to wrap all the
details of communicating between the mount helper and the containerized
fuse server.

This enables untrusted ext4 mounts via systemd service containers, which
avoids the problem of malicious filesystems compromising the integrity
of the running kernel through memory corruption.

In theory this could also be supported via inetd and clones, though the
author hasn't found one that supports AF_UNIX sockets.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2026-05-02 17:52:38 +02:00

256 lines
5.0 KiB
Plaintext

FUSE_3.0 {
global:
fuse_destroy;
fuse_exit;
fuse_loop;
fuse_loop_mt;
fuse_reply_attr;
fuse_reply_buf;
fuse_reply_entry;
fuse_reply_err;
fuse_reply_none;
fuse_reply_readlink;
fuse_reply_write;
fuse_reply_xattr;
fuse_req_userdata;
fuse_session_destroy;
fuse_session_exit;
fuse_session_exited;
fuse_session_loop;
fuse_session_loop_mt;
fuse_session_reset;
fuse_session_fd;
fuse_opt_parse;
fuse_opt_add_opt;
fuse_opt_add_arg;
fuse_opt_free_args;
fuse_opt_match;
fuse_parse_cmdline;
fuse_remove_signal_handlers;
fuse_reply_create;
fuse_reply_open;
fuse_reply_statfs;
fuse_set_signal_handlers;
fuse_add_direntry;
fuse_add_direntry_plus;
fuse_daemonize;
fuse_get_session;
fuse_interrupted;
fuse_session_new;
fuse_main_real;
fuse_mount;
fuse_session_custom_io;
fuse_session_mount;
fuse_new;
fuse_opt_insert_arg;
fuse_reply_lock;
fuse_req_interrupt_func;
fuse_req_interrupted;
fuse_unmount;
fuse_session_unmount;
fuse_fs_access;
fuse_fs_bmap;
fuse_fs_chmod;
fuse_fs_chown;
fuse_fs_create;
fuse_fs_destroy;
fuse_fs_flush;
fuse_fs_fsync;
fuse_fs_fsyncdir;
fuse_fs_getattr;
fuse_fs_getxattr;
fuse_fs_init;
fuse_fs_link;
fuse_fs_listxattr;
fuse_fs_lock;
fuse_fs_mkdir;
fuse_fs_mknod;
fuse_fs_new;
fuse_fs_open;
fuse_fs_opendir;
fuse_fs_read;
fuse_fs_readdir;
fuse_fs_readlink;
fuse_fs_release;
fuse_fs_releasedir;
fuse_fs_removexattr;
fuse_fs_rename;
fuse_fs_rmdir;
fuse_fs_setxattr;
fuse_fs_statfs;
fuse_fs_symlink;
fuse_fs_truncate;
fuse_fs_unlink;
fuse_fs_utimens;
fuse_fs_write;
fuse_reply_iov;
fuse_version;
fuse_pkgversion;
fuse_reply_bmap;
cuse_lowlevel_new;
cuse_lowlevel_main;
cuse_lowlevel_setup;
cuse_lowlevel_teardown;
fuse_fs_ioctl;
fuse_fs_poll;
fuse_get_context;
fuse_getgroups;
fuse_lowlevel_notify_inval_entry;
fuse_lowlevel_notify_inval_inode;
fuse_lowlevel_notify_poll;
fuse_notify_poll;
fuse_opt_add_opt_escaped;
fuse_pollhandle_destroy;
fuse_reply_ioctl;
fuse_reply_ioctl_iov;
fuse_reply_ioctl_retry;
fuse_reply_poll;
fuse_req_ctx;
fuse_req_getgroups;
fuse_buf_copy;
fuse_buf_size;
fuse_fs_read_buf;
fuse_fs_write_buf;
fuse_lowlevel_notify_retrieve;
fuse_lowlevel_notify_store;
fuse_reply_data;
fuse_session_process_buf;
fuse_session_receive_buf;
fuse_start_cleanup_thread;
fuse_stop_cleanup_thread;
fuse_clean_cache;
fuse_lowlevel_notify_delete;
fuse_fs_flock;
fuse_fs_fallocate;
fuse_lowlevel_help;
fuse_lowlevel_version;
fuse_cmdline_help;
fuse_apply_conn_info_opts;
fuse_parse_conn_info_opts;
fuse_fs_lseek;
fuse_reply_lseek;
local:
*;
};
FUSE_3.1 {
global:
fuse_lib_help;
fuse_invalidate_path;
fuse_new_30;
fuse_new_31;
fuse_new;
} FUSE_3.0;
FUSE_3.2 {
global:
fuse_session_loop_mt;
fuse_session_loop_mt_31;
fuse_session_loop_mt_32;
fuse_loop_mt;
fuse_loop_mt_31;
} FUSE_3.1;
FUSE_3.3 {
global:
fuse_open_channel;
} FUSE_3.2;
FUSE_3.4 {
global:
fuse_fs_copy_file_range;
} FUSE_3.3;
FUSE_3.7 {
global:
fuse_set_log_func;
fuse_log;
} FUSE_3.4;
FUSE_3.12 {
global:
fuse_session_loop_mt;
fuse_session_loop_mt_312;
fuse_loop_mt;
fuse_loop_mt_32;
fuse_loop_mt_312;
fuse_loop_cfg_create;
fuse_loop_cfg_destroy;
fuse_loop_cfg_set_idle_threads;
fuse_loop_cfg_set_max_threads;
fuse_loop_cfg_set_clone_fd;
fuse_loop_cfg_convert;
fuse_parse_cmdline;
fuse_parse_cmdline_30;
fuse_parse_cmdline_312;
fuse_lowlevel_notify_expire_entry;
} FUSE_3.4;
FUSE_3.17 {
global:
fuse_main_real_versioned;
fuse_session_new_versioned;
_fuse_new_30;
_fuse_new_31;
fuse_passthrough_open;
fuse_passthrough_close;
fuse_session_custom_io_30;
fuse_session_custom_io_317;
fuse_set_fail_signal_handlers;
fuse_log_enable_syslog;
fuse_log_close_syslog;
} FUSE_3.12;
FUSE_3.17.3 {
global:
fuse_set_feature_flag;
fuse_unset_feature_flag;
fuse_get_feature_flag;
# Not part of public API, for internal testing only
fuse_convert_to_conn_want_ext;
} FUSE_3.17;
FUSE_3.18 {
global:
fuse_req_is_uring;
fuse_req_get_payload;
fuse_lowlevel_notify_increment_epoch;
fuse_reply_statx;
fuse_fs_statx;
} FUSE_3.17;
FUSE_3.19 {
global:
fuse_session_start_teardown_watchdog;
fuse_session_stop_teardown_watchdog;
fuse_lowlevel_notify_prune;
fuse_daemonize_early_start;
fuse_daemonize_early_success;
fuse_daemonize_early_fail;
fuse_daemonize_early_is_active;
fuse_session_set_debug;
fuse_service_accept;
fuse_service_append_args;
fuse_service_can_allow_other;
fuse_service_cmdline;
fuse_service_destroy;
fuse_service_exit;
fuse_service_expect_mount_format;
fuse_service_finish_file_requests;
fuse_service_parse_cmdline_opts;
fuse_service_receive_file;
fuse_service_release;
fuse_service_request_file;
fuse_service_request_blockdev;
fuse_service_send_goodbye;
fuse_service_session_mount;
fuse_service_session_unmount;
} FUSE_3.18;
# Local Variables:
# indent-tabs-mode: t
# End: