The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxcfs/pull/341
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) === There's no need for anyone to call dlsym() on anything else than what we explicitly support. Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com>
From b0a2dc082263a88247c0b06c67368dcb52e1c842 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@ubuntu.com> Date: Wed, 4 Mar 2020 11:42:07 +0100 Subject: [PATCH] tree-wide: switch default visibility to hidden There's no need for anyone to call dlsym() on anything else than what we explicitly support. Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com> --- cgroup_fuse.h | 29 +++++++++++++---------------- configure.ac | 1 + macro.h | 2 ++ proc_fuse.h | 14 ++++++-------- sysfs_fuse.h | 16 +++++++--------- 5 files changed, 29 insertions(+), 33 deletions(-) diff --git a/cgroup_fuse.h b/cgroup_fuse.h index e93d774..900d2c9 100644 --- a/cgroup_fuse.h +++ b/cgroup_fuse.h @@ -23,21 +23,18 @@ #include "config.h" #include "macro.h" -extern int cg_getattr(const char *path, struct stat *sb); -extern int cg_mkdir(const char *path, mode_t mode); -extern int cg_rmdir(const char *path); -extern int cg_chmod(const char *path, mode_t mode); -extern int cg_chown(const char *path, uid_t uid, gid_t gid); -extern int cg_open(const char *path, struct fuse_file_info *fi); -extern int cg_read(const char *path, char *buf, size_t size, off_t offset, - struct fuse_file_info *fi); -extern int cg_opendir(const char *path, struct fuse_file_info *fi); -extern int cg_release(const char *path, struct fuse_file_info *fi); -extern int cg_releasedir(const char *path, struct fuse_file_info *fi); -extern int cg_write(const char *path, const char *buf, size_t size, - off_t offset, struct fuse_file_info *fi); -extern int cg_readdir(const char *path, void *buf, fuse_fill_dir_t filler, - off_t offset, struct fuse_file_info *fi); -extern int cg_access(const char *path, int mode); +__visible extern int cg_getattr(const char *path, struct stat *sb); +__visible extern int cg_mkdir(const char *path, mode_t mode); +__visible extern int cg_rmdir(const char *path); +__visible extern int cg_chmod(const char *path, mode_t mode); +__visible extern int cg_chown(const char *path, uid_t uid, gid_t gid); +__visible extern int cg_open(const char *path, struct fuse_file_info *fi); +__visible extern int cg_read(const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi); +__visible extern int cg_opendir(const char *path, struct fuse_file_info *fi); +__visible extern int cg_release(const char *path, struct fuse_file_info *fi); +__visible extern int cg_releasedir(const char *path, struct fuse_file_info *fi); +__visible extern int cg_write(const char *path, const char *buf, size_t size, off_t offset, struct fuse_file_info *fi); +__visible extern int cg_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi); +__visible extern int cg_access(const char *path, int mode); #endif /* __LXCFS_CGROUP_FUSE_H */ diff --git a/configure.ac b/configure.ac index fe799e4..b4b87df 100644 --- a/configure.ac +++ b/configure.ac @@ -227,6 +227,7 @@ AX_CHECK_COMPILE_FLAG([-Wnested-externs], [CFLAGS="$CFLAGS -Wnested-externs"],,[ AX_CHECK_COMPILE_FLAG([-fasynchronous-unwind-tables], [CFLAGS="$CFLAGS -fasynchronous-unwind-tables"],,[-Werror]) AX_CHECK_COMPILE_FLAG([-pipe], [CFLAGS="$CFLAGS -pipe"],,[-Werror]) AX_CHECK_COMPILE_FLAG([-fexceptions], [CFLAGS="$CFLAGS -fexceptions"],,[-Werror]) +CFLAGS="$CFLAGS -fvisibility=hidden" AX_CHECK_LINK_FLAG([-z relro], [LDFLAGS="$LDFLAGS -z relro"],,[]) AX_CHECK_LINK_FLAG([-z now], [LDFLAGS="$LDFLAGS -z now"],,[]) diff --git a/macro.h b/macro.h index 34b52bd..6b1c996 100644 --- a/macro.h +++ b/macro.h @@ -106,4 +106,6 @@ #define PTR_TO_UINT64(p) ((uint64_t)((intptr_t)(p))) #define INTTYPE_TO_PTR(u) ((void *)((intptr_t)(u))) +#define __visible __attribute__((visibility("default"))) + #endif /* __LXCFS_MACRO_H */ diff --git a/proc_fuse.h b/proc_fuse.h index 7b099d9..dbb1ad9 100644 --- a/proc_fuse.h +++ b/proc_fuse.h @@ -23,13 +23,11 @@ #include "config.h" #include "macro.h" -extern int proc_getattr(const char *path, struct stat *sb); -extern int proc_readdir(const char *path, void *buf, fuse_fill_dir_t filler, - off_t offset, struct fuse_file_info *fi); -extern int proc_open(const char *path, struct fuse_file_info *fi); -extern int proc_access(const char *path, int mask); -extern int proc_read(const char *path, char *buf, size_t size, off_t offset, - struct fuse_file_info *fi); -extern int proc_release(const char *path, struct fuse_file_info *fi); +__visible extern int proc_getattr(const char *path, struct stat *sb); +__visible extern int proc_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi); +__visible extern int proc_open(const char *path, struct fuse_file_info *fi); +__visible extern int proc_access(const char *path, int mask); +__visible extern int proc_read(const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi); +__visible extern int proc_release(const char *path, struct fuse_file_info *fi); #endif /* __LXCFS_PROC_FUSE_H */ diff --git a/sysfs_fuse.h b/sysfs_fuse.h index 6a82a48..c11d91a 100644 --- a/sysfs_fuse.h +++ b/sysfs_fuse.h @@ -23,14 +23,12 @@ #include "config.h" #include "macro.h" -extern int sys_getattr(const char *path, struct stat *sb); -extern int sys_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, - struct fuse_file_info *fi); -extern int sys_release(const char *path, struct fuse_file_info *fi); -extern int sys_releasedir(const char *path, struct fuse_file_info *fi); -extern int sys_open(const char *path, struct fuse_file_info *fi); -extern int sys_read(const char *path, char *buf, size_t size, off_t offset, - struct fuse_file_info *fi); -extern int sys_access(const char *path, int mask); +__visible extern int sys_getattr(const char *path, struct stat *sb); +__visible extern int sys_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi); +__visible extern int sys_release(const char *path, struct fuse_file_info *fi); +__visible extern int sys_releasedir(const char *path, struct fuse_file_info *fi); +__visible extern int sys_open(const char *path, struct fuse_file_info *fi); +__visible extern int sys_read(const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi); +__visible extern int sys_access(const char *path, int mask); #endif /* __LXCFS_SYSFS_FUSE_H */
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel