]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- fix autofs4 credentials passing auto/th/kernel-4.4-4.4.24-2
authorJan Rękorajski <baggins@pld-linux.org>
Sun, 16 Oct 2016 11:16:57 +0000 (13:16 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Sun, 16 Oct 2016 11:16:57 +0000 (13:16 +0200)
- rel 2

kernel-small_fixes.patch
kernel.spec

index d4b603499b05f64e51b96e527678c26a94700ef8..3df7f3507005ca4406182ebbe1a722727f40ac7f 100644 (file)
                                exit
                        fi
                done
+From 069d5ac9ae0d271903cc4607890616418118379a Mon Sep 17 00:00:00 2001
+From: "Eric W. Biederman" <ebiederm@xmission.com>
+Date: Fri, 30 Sep 2016 11:28:05 -0500
+Subject: autofs:  Fix automounts by using current_real_cred()->uid
+
+Seth Forshee reports that in 4.8-rcN some automounts are failing
+because the requesting the automount changed.
+
+The relevant call path is:
+follow_automount()
+    ->d_automount
+    autofs4_d_automount
+       autofs4_mount_wait
+           autofs4_wait
+
+In autofs4_wait wq_uid and wq_gid are set to current_uid() and
+current_gid respectively.  With follow_automount now overriding creds
+uid that we export to userspace changes and that breaks existing
+setups.
+
+To remove the regression set wq_uid and wq_gid from
+current_real_cred()->uid and current_real_cred()->gid respectively.
+This restores the current behavior as current->real_cred is identical
+to current->cred except when override creds are used.
+
+Cc: stable@vger.kernel.org
+Fixes: aeaa4a79ff6a ("fs: Call d_automount with the filesystems creds")
+Reported-by: Seth Forshee <seth.forshee@canonical.com>
+Tested-by: Seth Forshee <seth.forshee@canonical.com>
+Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
+---
+ fs/autofs4/waitq.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
+index 431fd7e..e44271d 100644
+--- a/fs/autofs4/waitq.c
++++ b/fs/autofs4/waitq.c
+@@ -431,8 +431,8 @@ int autofs4_wait(struct autofs_sb_info *sbi,
+               memcpy(&wq->name, &qstr, sizeof(struct qstr));
+               wq->dev = autofs4_get_dev(sbi);
+               wq->ino = autofs4_get_ino(sbi);
+-              wq->uid = current_uid();
+-              wq->gid = current_gid();
++              wq->uid = current_real_cred()->uid;
++              wq->gid = current_real_cred()->gid;
+               wq->pid = pid;
+               wq->tgid = tgid;
+               wq->status = -EINTR; /* Status return if interrupted */
+-- 
+cgit v0.12
+
index c4f1cf9b0b4741922016e762c55a3b977eb4e05a..a39a740bb40e228062235348f31f247d03694b55 100644 (file)
@@ -68,7 +68,7 @@
 %define                have_pcmcia     0
 %endif
 
-%define                rel             1
+%define                rel             2
 %define                basever         4.4
 %define                postver         .24
 
This page took 0.087847 seconds and 4 git commands to generate.