Date: Thursday, December 17, 2020 @ 09:37:48
  Author: tpowa
Revision: 404431

upgpkg: cifs-utils 6.11-3: fix #68666

Added:
  
cifs-utils/trunk/cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1_part-2.patch
Modified:
  cifs-utils/trunk/PKGBUILD

------------------------------------------------------------------+
 PKGBUILD                                                         |   11 +
 cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1_part-2.patch |   58 
++++++++++
 2 files changed, 65 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2020-12-17 09:19:52 UTC (rev 404430)
+++ PKGBUILD    2020-12-17 09:37:48 UTC (rev 404431)
@@ -1,7 +1,7 @@
 # Maintainer: Tobias Powalowski <[email protected]>
 pkgname=cifs-utils
 pkgver=6.11
-pkgrel=2
+pkgrel=3
 pkgdesc="CIFS filesystem user-space tools"
 arch=(x86_64)
 url="https://wiki.samba.org/index.php/LinuxCIFS_utils";
@@ -9,18 +9,21 @@
 depends=('libcap-ng' 'keyutils' 'krb5' 'talloc' 'libwbclient' 'pam')
 makedepends=('python-docutils')
 
source=("https://download.samba.org/pub/linux-cifs/$pkgname/$pkgname-$pkgver.tar.bz2"{,.asc}
-       "cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1.patch")
+       "cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1.patch"
+        "cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1_part-2.patch")
 
 validpgpkeys=('C699981A31F338706C817650DF5BA9D30642D5A0') #cifs-utils 
Distribution Verification Key <[email protected]>
 sha256sums=('b859239a3f204f8220d3e54ed43bf8109e1ef202042dd87ba87492f8878728d9'
             'SKIP'
-            '0edcd01eb3e721a5726cc00160667dc2f7c935883bad71711288488081f81e5b')
+            '0edcd01eb3e721a5726cc00160667dc2f7c935883bad71711288488081f81e5b'
+            'acdf75f2d3895d60414f19b2401f3349af23252717bf669529848f9d35d70604')
 
 prepare() {
   # Fix install to honor DESTDIR
   sed -e 's|\$(man8dir)|$(DESTDIR)$(man8dir)|g' -e 's|cd \$(ROOTSBINDIR)|cd 
$(DESTDIR)$(ROOTSBINDIR)|g' -i $pkgname-$pkgver/Makefile.am
   cd "$srcdir/$pkgname-$pkgver"
-  patch -Np1 -i 
$srcdir/cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1.patch
+  patch -Np1 -i 
"$srcdir/cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1.patch"
+  patch -Np1 -i 
"$srcdir/cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1_part-2.patch"
 }
 
 build() {

Added: cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1_part-2.patch
===================================================================
--- cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1_part-2.patch            
                (rev 0)
+++ cifs-utils-6.11_fix_capng_apply_for_libcap-ng-0.8.1_part-2.patch    
2020-12-17 09:37:48 UTC (rev 404431)
@@ -0,0 +1,58 @@
+From 0fddcee4b1b9c9f16b3cfe1b2daec87d2b8b19dd Mon Sep 17 00:00:00 2001
+From: Alexander Koch <[email protected]>
+Date: Wed, 16 Dec 2020 18:02:31 +0100
+Subject: [PATCH] cifs.upcall: drop bounding capabilities only if CAP_SETPCAP
+ is given
+
+Make drop_call_capabilities() in cifs.upcall update the bounding capabilities
+only if CAP_SETCAP is present.
+
+This is an addendum to the patch recently provided in [1]. Without this
+additional change, cifs.upcall can still fail while trying to mount a CIFS
+network share with krb5:
+
+  kernel: CIFS: Attempting to mount //server.domain.lan/myshare
+  cifs.upcall[39484]: key description: 
cifs.spnego;0;0;39010000;ver=0x2;host=server.domain.lan>
+  cifs.upcall[39484]: ver=2
+  cifs.upcall[39484]: host=server.domain.lan
+  cifs.upcall[39484]: ip=172.22.3.14
+  cifs.upcall[39484]: sec=1
+  cifs.upcall[39484]: uid=1000
+  cifs.upcall[39484]: creduid=1000
+  cifs.upcall[39484]: user=username
+  cifs.upcall[39484]: pid=39481
+  cifs.upcall[39484]: get_cachename_from_process_env: 
pathname=/proc/39481/environ
+  cifs.upcall[39484]: get_cachename_from_process_env: cachename = 
FILE:/tmp/.krb5cc_1000
+  cifs.upcall[39484]: drop_all_capabilities: Unable to apply capability set: 
Success
+  cifs.upcall[39484]: Exit status 1
+
+[1] https://marc.info/?l=linux-cifs&m=160595758021261
+
+Signed-off-by: Alexander Koch <[email protected]>
+Signed-off-by: Jonas Witschel <[email protected]>
+---
+ cifs.upcall.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/cifs.upcall.c b/cifs.upcall.c
+index 1559434..b62ab50 100644
+--- a/cifs.upcall.c
++++ b/cifs.upcall.c
+@@ -115,8 +115,13 @@ trim_capabilities(bool need_environ)
+ static int
+ drop_all_capabilities(void)
+ {
++      capng_select_t set = CAPNG_SELECT_CAPS;
++
+       capng_clear(CAPNG_SELECT_BOTH);
+-      if (capng_apply(CAPNG_SELECT_BOTH)) {
++      if (capng_have_capability(CAPNG_EFFECTIVE, CAP_SETPCAP)) {
++              set = CAPNG_SELECT_BOTH;
++      }
++      if (capng_apply(set)) {
+               syslog(LOG_ERR, "%s: Unable to apply capability set: %m\n", 
__func__);
+               return 1;
+       }
+-- 
+2.29.2
+

Reply via email to