commit 74a524701777bf73a96264dfd0fc9da7dd7cb39f Author: Jan Rękorajski <bagg...@pld-linux.org> Date: Sun Oct 16 13:15:17 2016 +0200
- fix autofs4 credentials passing - rel 2 kernel-small_fixes.patch | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ kernel.spec | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) --- diff --git a/kernel.spec b/kernel.spec index 23d27e5..9de6bd3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -67,7 +67,7 @@ %define have_pcmcia 0 %endif -%define rel 1 +%define rel 2 %define basever 4.8 %define postver .1 diff --git a/kernel-small_fixes.patch b/kernel-small_fixes.patch index 28517b8..3df7f35 100644 --- a/kernel-small_fixes.patch +++ b/kernel-small_fixes.patch @@ -26,4 +26,55 @@ exit fi done +From 069d5ac9ae0d271903cc4607890616418118379a Mon Sep 17 00:00:00 2001 +From: "Eric W. Biederman" <ebied...@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: sta...@vger.kernel.org +Fixes: aeaa4a79ff6a ("fs: Call d_automount with the filesystems creds") +Reported-by: Seth Forshee <seth.fors...@canonical.com> +Tested-by: Seth Forshee <seth.fors...@canonical.com> +Signed-off-by: "Eric W. Biederman" <ebied...@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 ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/74a524701777bf73a96264dfd0fc9da7dd7cb39f _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit