diff --git a/gvfs-smb-ignore-EINVAL-kerberos-ccache.patch b/gvfs-smb-ignore-EINVAL-kerberos-ccache.patch new file mode 100644 index 0000000..6a8fd79 --- /dev/null +++ b/gvfs-smb-ignore-EINVAL-kerberos-ccache.patch @@ -0,0 +1,58 @@ +From 747c7f6ea6c8b6a7ccd008bb47996ba7eb169bcc Mon Sep 17 00:00:00 2001 +From: Ondrej Holy +Date: Mon, 11 Apr 2022 10:54:04 +0200 +Subject: [PATCH] smb: Ignore EINVAL for kerberos/ccache login + +With samba 4.16.0, mount operation fails with the "Invalid Argument" error +when kerberos/ccache is misconfigured. Ignore this error, so user get a chance +to login using the password... + +Fixes: https://gitlab.gnome.org/GNOME/gvfs/-/issues/611 +--- + daemon/gvfsbackendsmb.c | 8 +++++++- + daemon/gvfsbackendsmbbrowse.c | 10 ++++++++-- + 2 files changed, 15 insertions(+), 3 deletions(-) + +diff --git a/daemon/gvfsbackendsmb.c b/daemon/gvfsbackendsmb.c +index 33d1a209..776b67bc 100644 +--- a/daemon/gvfsbackendsmb.c ++++ b/daemon/gvfsbackendsmb.c +@@ -513,7 +513,13 @@ do_mount (GVfsBackend *backend, + if (res == 0) + break; + +- if (op_backend->mount_cancelled || (errsv != EACCES && errsv != EPERM)) ++ if (errsv == EINVAL && op_backend->mount_try <= 1 && op_backend->user == NULL) ++ { ++ /* EINVAL is "expected" when kerberos/ccache is misconfigured, see: ++ * https://gitlab.gnome.org/GNOME/gvfs/-/issues/611 ++ */ ++ } ++ else if (op_backend->mount_cancelled || (errsv != EACCES && errsv != EPERM)) + { + g_debug ("do_mount - (errno != EPERM && errno != EACCES), cancelled = %d, breaking\n", op_backend->mount_cancelled); + break; +diff --git a/daemon/gvfsbackendsmbbrowse.c b/daemon/gvfsbackendsmbbrowse.c +index 57bae9db..7e8facfb 100644 +--- a/daemon/gvfsbackendsmbbrowse.c ++++ b/daemon/gvfsbackendsmbbrowse.c +@@ -967,8 +967,14 @@ do_mount (GVfsBackend *backend, + uri, op_backend->mount_try, dir, op_backend->mount_cancelled, + errsv, g_strerror (errsv)); + +- if (dir == NULL && +- (op_backend->mount_cancelled || (errsv != EPERM && errsv != EACCES))) ++ if (errsv == EINVAL && op_backend->mount_try == 0 && op_backend->user == NULL) ++ { ++ /* EINVAL is "expected" when kerberos is misconfigured, see: ++ * https://gitlab.gnome.org/GNOME/gvfs/-/issues/611 ++ */ ++ } ++ else if (dir == NULL && ++ (op_backend->mount_cancelled || (errsv != EPERM && errsv != EACCES))) + { + g_debug ("do_mount - (errno != EPERM && errno != EACCES), cancelled = %d, breaking\n", op_backend->mount_cancelled); + break; +-- +2.35.3 + diff --git a/gvfs.changes b/gvfs.changes index a064ed6..0f0368c 100644 --- a/gvfs.changes +++ b/gvfs.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Apr 21 15:34:47 UTC 2022 - Michael Gorse + +- Add gvfs-smb-ignore-EINVAL-kerberos-ccache.patch: ignore EINVAL + for kerberos/ccache login. Fixes inability to mount smb shares + with samba 4.16 (boo#1198718). + ------------------------------------------------------------------- Fri Mar 18 12:27:54 UTC 2022 - Bjørn Lie diff --git a/gvfs.spec b/gvfs.spec index 3cb4330..96749d1 100644 --- a/gvfs.spec +++ b/gvfs.spec @@ -26,6 +26,8 @@ Group: Development/Libraries/C and C++ URL: https://wiki.gnome.org/Projects/gvfs Source0: https://download.gnome.org/sources/gvfs/1.50/%{name}-%{version}.tar.xz Source99: baselibs.conf +# PATCH-FIX-UPSTREAM gvfs-smb-ignore-EINVAL-kerberos-ccache.patch boo#1198718 mgorse@suse.com -- ignore EINVAL for kerberos/ccache login. +Patch0: gvfs-smb-ignore-EINVAL-kerberos-ccache.patch ### NOTE: Please, keep SLE-only patches at bottom (starting on 1000). # PATCH-FEATURE-SLE gvfs-nds.patch ksamrat@novell.com -- Provides NDS browsing for nautilus @@ -158,6 +160,7 @@ gvfs plugins. %prep %setup -q +%patch0 -p1 %if 0%{?sle_version} %patch1000 -p1