mirror of
https://github.com/libfuse/libfuse.git
synced 2026-07-07 14:47:41 +08:00
5d8b9a39a1
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>
256 lines
5.0 KiB
Plaintext
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:
|