summaryrefslogtreecommitdiff
path: root/pkg/sshfs/patch/0007-Disable-uidmap-and-gidmap-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/sshfs/patch/0007-Disable-uidmap-and-gidmap-support.patch')
-rw-r--r--pkg/sshfs/patch/0007-Disable-uidmap-and-gidmap-support.patch127
1 files changed, 127 insertions, 0 deletions
diff --git a/pkg/sshfs/patch/0007-Disable-uidmap-and-gidmap-support.patch b/pkg/sshfs/patch/0007-Disable-uidmap-and-gidmap-support.patch
new file mode 100644
index 00000000..1a232a7d
--- /dev/null
+++ b/pkg/sshfs/patch/0007-Disable-uidmap-and-gidmap-support.patch
@@ -0,0 +1,127 @@
+From d12abc4b94f24c52637bcb19f6ac7819cf66af10 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 5 Jun 2016 18:24:16 -0700
+Subject: [PATCH] Disable uidmap and gidmap support
+
+---
+ sshfs.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/sshfs.c b/sshfs.c
+index cd6abf6..9af8814 100644
+--- a/sshfs.c
++++ b/sshfs.c
+@@ -242,10 +242,12 @@ struct sshfs {
+ int disable_hardlink;
+ char *uid_file;
+ char *gid_file;
++#if 0
+ GHashTable *uid_map;
+ GHashTable *gid_map;
+ GHashTable *r_uid_map;
+ GHashTable *r_gid_map;
++#endif
+ unsigned max_read;
+ unsigned max_write;
+ unsigned ssh_ver;
+@@ -366,7 +368,9 @@ enum {
+ enum {
+ IDMAP_NONE,
+ IDMAP_USER,
++#if 0
+ IDMAP_FILE,
++#endif
+ };
+
+ enum {
+@@ -387,7 +391,9 @@ static struct fuse_opt sshfs_opts[] = {
+ SSHFS_OPT("workaround=%s", workarounds, 0),
+ SSHFS_OPT("idmap=none", idmap, IDMAP_NONE),
+ SSHFS_OPT("idmap=user", idmap, IDMAP_USER),
++#if 0
+ SSHFS_OPT("idmap=file", idmap, IDMAP_FILE),
++#endif
+ SSHFS_OPT("uidfile=%s", uid_file, 0),
+ SSHFS_OPT("gidfile=%s", gid_file, 0),
+ SSHFS_OPT("nomap=ignore", nomap, NOMAP_IGNORE),
+@@ -520,6 +526,7 @@ static int list_empty(const struct list_head *head)
+ return head->next == head;
+ }
+
++#if 0
+ /* given a pointer to the uid/gid, and the mapping table, remap the
+ * uid/gid, if necessary */
+ static inline int translate_id(uint32_t *id, GHashTable *map)
+@@ -537,6 +544,7 @@ static inline int translate_id(uint32_t *id, GHashTable *map)
+ abort();
+ }
+ }
++#endif
+
+ static inline void buf_init(struct buffer *buf, size_t size)
+ {
+@@ -784,12 +792,14 @@ static int buf_get_attrs(struct buffer *buf, struct stat *stbuf, int *flagsp)
+ if (sshfs.remote_uid_detected && uid == sshfs.remote_uid)
+ uid = sshfs.local_uid;
+ #endif /* __APPLE__ */
++#if 0
+ if (sshfs.idmap == IDMAP_FILE && sshfs.uid_map)
+ if (translate_id(&uid, sshfs.uid_map) == -1)
+ return -EPERM;
+ if (sshfs.idmap == IDMAP_FILE && sshfs.gid_map)
+ if (translate_id(&gid, sshfs.gid_map) == -1)
+ return -EPERM;
++#endif
+
+ memset(stbuf, 0, sizeof(struct stat));
+ stbuf->st_mode = mode;
+@@ -2486,12 +2496,14 @@ static int sshfs_chown(const char *path, uid_t uid, gid_t gid)
+ if (sshfs.remote_uid_detected && uid == sshfs.local_uid)
+ uid = sshfs.remote_uid;
+ #endif /* __APPLE__ */
++#if 0
+ if (sshfs.idmap == IDMAP_FILE && sshfs.r_uid_map)
+ if(translate_id(&uid, sshfs.r_uid_map) == -1)
+ return -EPERM;
+ if (sshfs.idmap == IDMAP_FILE && sshfs.r_gid_map)
+ if (translate_id(&gid, sshfs.r_gid_map) == -1)
+ return -EPERM;
++#endif
+
+ buf_init(&buf, 0);
+ buf_add_path(&buf, path);
+@@ -3805,6 +3817,7 @@ static int ssh_connect(void)
+ return 0;
+ }
+
++#if 0
+ /* number of ':' separated fields in a passwd/group file that we care
+ * about */
+ #define IDMAP_FIELDS 3
+@@ -3979,6 +3992,7 @@ static inline void load_gid_map(void)
+ {
+ read_id_map(sshfs.gid_file, &groupname_to_gid, "gid", &sshfs.gid_map, &sshfs.r_gid_map);
+ }
++#endif
+
+ #ifdef __APPLE__
+ int main(int argc, char *argv[], __unused char *envp[], char **exec_path)
+@@ -4046,6 +4060,7 @@ int main(int argc, char *argv[])
+
+ if (sshfs.idmap == IDMAP_USER)
+ sshfs.detect_uid = 1;
++#if 0
+ else if (sshfs.idmap == IDMAP_FILE) {
+ sshfs.uid_map = NULL;
+ sshfs.gid_map = NULL;
+@@ -4060,6 +4075,7 @@ int main(int argc, char *argv[])
+ if (sshfs.gid_file)
+ load_gid_map();
+ }
++#endif
+ free(sshfs.uid_file);
+ free(sshfs.gid_file);
+
+--
+2.9.0
+