diff --git a/Ignore-EINVAL-for-kerberos-ccache-login.patch b/Ignore-EINVAL-for-kerberos-ccache-login.patch new file mode 100644 index 0000000..b91d750 --- /dev/null +++ b/Ignore-EINVAL-for-kerberos-ccache-login.patch @@ -0,0 +1,53 @@ +From f99a48e982375e9ff5e98f36f1038cefd182e03c Mon Sep 17 00:00:00 2001 +From: peijiankang +Date: Thu, 26 Oct 2023 17:20:22 +0800 +Subject: [PATCH] Ignore EINVAL for kerberos/ccache login + +--- + daemon/gvfsbackendsmb.c | 10 ++++++++-- + daemon/gvfsbackendsmbbrowse.c | 8 +++++++- + 2 files changed, 15 insertions(+), 3 deletions(-) + +diff --git a/daemon/gvfsbackendsmb.c b/daemon/gvfsbackendsmb.c +index b8319c6..67c4570 100644 +--- a/daemon/gvfsbackendsmb.c ++++ b/daemon/gvfsbackendsmb.c +@@ -502,8 +502,14 @@ 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 3b11883..b3bb7b2 100644 +--- a/daemon/gvfsbackendsmbbrowse.c ++++ b/daemon/gvfsbackendsmbbrowse.c +@@ -957,7 +957,13 @@ do_mount (GVfsBackend *backend, + uri, op_backend->mount_try, dir, op_backend->mount_cancelled, + errsv, g_strerror (errsv)); + +- if (dir == NULL && ++ 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); +-- +2.33.0 + diff --git a/gvfs.spec b/gvfs.spec index f5f8fd2..69e09e8 100644 --- a/gvfs.spec +++ b/gvfs.spec @@ -23,14 +23,14 @@ Name: gvfs Version: 1.46.2 -Release: 3 +Release: 4 Summary: gvfs is a backends for the gio framework in GLib License: GPLv3 and LGPLv2+ and BSD and MPLv2.0 URL: https://wiki.gnome.org/Projects/gvfs Source0: https://download.gnome.org/sources/gvfs/1.46/gvfs-%{version}.tar.xz Patch0: 0001-Fix-memory-leaks-detected-by-valgrind.patch - +Patch1: Ignore-EINVAL-for-kerberos-ccache-login.patch BuildRequires: /usr/bin/ssh git pkgconfig fuse3 BuildRequires: meson gcc pkgconfig pkgconfig(glib-2.0) >= %{glib2_version} pkgconfig(dbus-glib-1) pkgconfig(gcr-3) BuildRequires: openssl-devel pkgconfig(gsettings-desktop-schemas) >= %{gsettings_desktop_schemas_version} @@ -218,6 +218,9 @@ killall -USR1 gvfsd >&/dev/null || : %{_mandir}/man1/gvfsd-fuse.1* %changelog +* Thu Oct 26 2023 peijiankang - 1.46.2-4 +- Ignore EINVAL for kerberos/ccache login + * Fri Jul 28 2023 haomimi - 1.46.2-3 - Fix memory leaks detected by valgrind