import CS autofs-5.1.7-65.el9
This commit is contained in:
parent
e1113a0f52
commit
81a0bc07e8
132
SOURCES/autofs-5.1.8-always-recreate-credential-cache.patch
Normal file
132
SOURCES/autofs-5.1.8-always-recreate-credential-cache.patch
Normal file
@ -0,0 +1,132 @@
|
||||
autofs-5.1.8 - always recreate credential cache
|
||||
|
||||
From: Ian Collier <imc@cs.ox.ac.uk>
|
||||
|
||||
In recent Kerberos revisions when a TGT expires autofs will fail to
|
||||
renew the ticket.
|
||||
|
||||
Expired creds are being pulled out of the cache and in that case the patched
|
||||
version clears the cache to remove the expired creds.
|
||||
|
||||
If the cache is already in use, try to pull out a cred and then if that
|
||||
was successful and the cred is expired, clear the cache.
|
||||
|
||||
So this fixes the behaviour I was seeing, since that was happening because
|
||||
expired creds were being pulled out of the cache and in that case the patched
|
||||
version clears the cache to remove the expired creds.
|
||||
|
||||
What sort of race conditions might happen here?
|
||||
|
||||
- If the function is called very late during the validity of a ticket, it
|
||||
might expire after the decision not to clear the cache. In that case,
|
||||
the behaviour is the same as the unpatched version, but this is highly
|
||||
unlikely because do_kinit is not supposed to happen while there is a
|
||||
valid ticket.
|
||||
|
||||
- If two or more threads decide to call do_kinit at about the same time:
|
||||
it's protected by a mutex, so one of the calls will happen first; this
|
||||
call will clear the cache and add a new ticket. When the others kick
|
||||
in, the cache won't be cleared because it's only cleared if we can
|
||||
find an expired ticket in the cache and any such ticket was removed
|
||||
when the first do_kinit happened.
|
||||
|
||||
- If one thread does do_kinit while another thread is trying to do a lookup:
|
||||
if the current ticket is expired then the lookup would have failed anyway;
|
||||
if it's not expired then we won't clear the cache.
|
||||
|
||||
- If there is both an expired and a valid ticket in the cache:
|
||||
this only happens if two or more do_kinits clashed and stored tickets
|
||||
with different expiration times, and if the current time is between those
|
||||
times. The current bug happens because krb5 cache retrieval is returning
|
||||
the earliest (i.e. expired) ticket. When that's the case then do_kinit
|
||||
will clear the cache because when it tests the cache it will pull the
|
||||
expired cred - and it needs to do this because otherwise all lookups are
|
||||
failing (that's the bug). In a case where krb5 cache retrieval returns
|
||||
the valid ticket, it doesn't matter that the cache is not cleared because
|
||||
any subsequent lookups will use that valid ticket.
|
||||
|
||||
Signed-off-by: Ian Collier <imc@cs.ox.ac.uk>
|
||||
---
|
||||
CHANGELOG | 1
|
||||
modules/cyrus-sasl.c | 53 +++++++++++++++++++++++++++++++++++++++------------
|
||||
2 files changed, 42 insertions(+), 12 deletions(-)
|
||||
|
||||
--- autofs-5.1.7.orig/CHANGELOG
|
||||
+++ autofs-5.1.7/CHANGELOG
|
||||
@@ -184,6 +184,7 @@
|
||||
- Fix incompatible function pointer types in cyrus-sasl module.
|
||||
- fix handling of ignored offsets.
|
||||
- fix invalidated map entry handling in hosts module.
|
||||
+- always recreate credential cache.
|
||||
|
||||
25/01/2021 autofs-5.1.7
|
||||
- make bind mounts propagation slave by default.
|
||||
--- autofs-5.1.7.orig/modules/cyrus-sasl.c
|
||||
+++ autofs-5.1.7/modules/cyrus-sasl.c
|
||||
@@ -509,6 +509,46 @@ sasl_do_kinit(unsigned logopt, struct lo
|
||||
debug(logopt, "Using tgs name %s", tgs_name);
|
||||
|
||||
memset(&my_creds, 0, sizeof(my_creds));
|
||||
+
|
||||
+ if (krb5cc_in_use++ == 0) {
|
||||
+ /* tell the cache what the default principal is */
|
||||
+ ret = krb5_cc_initialize(ctxt->krb5ctxt,
|
||||
+ ctxt->krb5_ccache, krb5_client_princ);
|
||||
+
|
||||
+ if (ret) {
|
||||
+ --krb5cc_in_use;
|
||||
+ error(logopt,
|
||||
+ "krb5_cc_initialize failed with error %d", ret);
|
||||
+ goto out_cleanup_unparse;
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ krb5_creds match_creds, out_creds;
|
||||
+ time_t now = monotonic_time(NULL);
|
||||
+
|
||||
+ /* even if the cache is in use, we will clear it if it
|
||||
+ * contains an expired credential for our principal,
|
||||
+ * because Kerberos doesn't always work well with caches
|
||||
+ * that contain both expired and valid credentials
|
||||
+ */
|
||||
+ memset(&match_creds, 0, sizeof match_creds);
|
||||
+ match_creds.client = krb5_client_princ;
|
||||
+ match_creds.server = tgs_princ;
|
||||
+ ret = krb5_cc_retrieve_cred(ctxt->krb5ctxt, ctxt->krb5_ccache,
|
||||
+ 0, &match_creds, &out_creds);
|
||||
+ if (ret == 0 && (time_t) out_creds.times.endtime < now) {
|
||||
+ debug(logopt,
|
||||
+ "calling krb5_cc_initialize to clear expired tickets");
|
||||
+ ret = krb5_cc_initialize(ctxt->krb5ctxt,
|
||||
+ ctxt->krb5_ccache, krb5_client_princ);
|
||||
+ if (ret)
|
||||
+ warn(logopt,
|
||||
+ "krb5_cc_initialize failed with error %d "
|
||||
+ "while trying to clear existing cache",
|
||||
+ ret);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
ret = krb5_get_init_creds_keytab(ctxt->krb5ctxt, &my_creds,
|
||||
krb5_client_princ,
|
||||
NULL /*keytab*/,
|
||||
@@ -521,18 +561,7 @@ sasl_do_kinit(unsigned logopt, struct lo
|
||||
goto out_cleanup_unparse;
|
||||
}
|
||||
|
||||
- if (krb5cc_in_use++ == 0)
|
||||
- /* tell the cache what the default principal is */
|
||||
- ret = krb5_cc_initialize(ctxt->krb5ctxt,
|
||||
- ctxt->krb5_ccache, krb5_client_princ);
|
||||
-
|
||||
- if (ret) {
|
||||
- error(logopt,
|
||||
- "krb5_cc_initialize failed with error %d", ret);
|
||||
- goto out_cleanup_creds;
|
||||
- }
|
||||
-
|
||||
- /* and store credentials for that principal */
|
||||
+ /* and store credentials for our principal */
|
||||
ret = krb5_cc_store_cred(ctxt->krb5ctxt, ctxt->krb5_ccache, &my_creds);
|
||||
if (ret) {
|
||||
error(logopt,
|
||||
@ -0,0 +1,41 @@
|
||||
autofs-5.1.9 - Fix incompatible function pointer types in cyrus-sasl module
|
||||
|
||||
From: Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
Add casts to SASL callbacks to avoid incompatible-pointer-types
|
||||
errors. Avoids a build failure with stricter compilers.
|
||||
|
||||
Signed-off-by: Florian Weimer <fweimer@redhat.com>
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/cyrus-sasl.c | 8 ++++----
|
||||
2 files changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
--- autofs-5.1.7.orig/CHANGELOG
|
||||
+++ autofs-5.1.7/CHANGELOG
|
||||
@@ -181,6 +181,7 @@
|
||||
- fix deadlock in master_notify_submount().
|
||||
- handle sss special case getautomntbyname() error.
|
||||
- fix lock ordering deadlock in expire_cleanup().
|
||||
+- Fix incompatible function pointer types in cyrus-sasl module.
|
||||
|
||||
25/01/2021 autofs-5.1.7
|
||||
- make bind mounts propagation slave by default.
|
||||
--- autofs-5.1.7.orig/modules/cyrus-sasl.c
|
||||
+++ autofs-5.1.7/modules/cyrus-sasl.c
|
||||
@@ -109,10 +109,10 @@ static int getpass_func(sasl_conn_t *, v
|
||||
static int getuser_func(void *, int, const char **, unsigned *);
|
||||
|
||||
static sasl_callback_t callbacks[] = {
|
||||
- { SASL_CB_LOG, &sasl_log_func, NULL },
|
||||
- { SASL_CB_USER, &getuser_func, NULL },
|
||||
- { SASL_CB_AUTHNAME, &getuser_func, NULL },
|
||||
- { SASL_CB_PASS, &getpass_func, NULL },
|
||||
+ { SASL_CB_LOG, (int(*)(void)) &sasl_log_func, NULL },
|
||||
+ { SASL_CB_USER, (int(*)(void)) &getuser_func, NULL },
|
||||
+ { SASL_CB_AUTHNAME, (int(*)(void)) &getuser_func, NULL },
|
||||
+ { SASL_CB_PASS, (int(*)(void)) &getpass_func, NULL },
|
||||
{ SASL_CB_LIST_END, NULL, NULL },
|
||||
};
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
autofs-5.1.9 - fix always recreate credential cache
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
When I aplied the original patch from Ian Collier for this I changed
|
||||
the credential end time comparison to be against the time returned from
|
||||
monotomic_time(). But this isn't the same as the calander time returned
|
||||
from time() which Ian used in his original patch.
|
||||
|
||||
Signed-off-by: Ian Kent < raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/cyrus-sasl.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- autofs-5.1.7.orig/CHANGELOG
|
||||
+++ autofs-5.1.7/CHANGELOG
|
||||
@@ -185,6 +185,7 @@
|
||||
- fix handling of ignored offsets.
|
||||
- fix invalidated map entry handling in hosts module.
|
||||
- always recreate credential cache.
|
||||
+- fix always recreate credential cache.
|
||||
|
||||
25/01/2021 autofs-5.1.7
|
||||
- make bind mounts propagation slave by default.
|
||||
--- autofs-5.1.7.orig/modules/cyrus-sasl.c
|
||||
+++ autofs-5.1.7/modules/cyrus-sasl.c
|
||||
@@ -524,7 +524,7 @@ sasl_do_kinit(unsigned logopt, struct lo
|
||||
}
|
||||
else {
|
||||
krb5_creds match_creds, out_creds;
|
||||
- time_t now = monotonic_time(NULL);
|
||||
+ time_t now = time(NULL);
|
||||
|
||||
/* even if the cache is in use, we will clear it if it
|
||||
* contains an expired credential for our principal,
|
||||
89
SOURCES/autofs-5.1.9-fix-handling-of-ignored-offsets.patch
Normal file
89
SOURCES/autofs-5.1.9-fix-handling-of-ignored-offsets.patch
Normal file
@ -0,0 +1,89 @@
|
||||
autofs-5.1.9 - fix handling of ignored offsets
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
If a map entry offset path already has a real mount mounted on it then
|
||||
it's ignored as it has very likely been auto-mounted by the NFS client.
|
||||
|
||||
But we have seen a case were autofs incorrectly makes a function call
|
||||
that attempts to mount the offset tree mounts again after successfully
|
||||
mounting the real mount on the offset. This causes automount(8) to see
|
||||
this as an NFS auto-mounted mount to be ignored and then incorrectly
|
||||
invalidates these offsets.
|
||||
|
||||
Guard against this by flagging offset trigger mounts as mounted when
|
||||
they are initially successfully mounted and clearing it upon umounting
|
||||
them.
|
||||
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
daemon/direct.c | 3 +++
|
||||
include/automount.h | 3 +++
|
||||
lib/mounts.c | 7 ++++++-
|
||||
4 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
--- autofs-5.1.7.orig/CHANGELOG
|
||||
+++ autofs-5.1.7/CHANGELOG
|
||||
@@ -182,6 +182,7 @@
|
||||
- handle sss special case getautomntbyname() error.
|
||||
- fix lock ordering deadlock in expire_cleanup().
|
||||
- Fix incompatible function pointer types in cyrus-sasl module.
|
||||
+- fix handling of ignored offsets.
|
||||
|
||||
25/01/2021 autofs-5.1.7
|
||||
- make bind mounts propagation slave by default.
|
||||
--- autofs-5.1.7.orig/daemon/direct.c
|
||||
+++ autofs-5.1.7/daemon/direct.c
|
||||
@@ -539,6 +539,7 @@ int umount_autofs_offset(struct autofs_p
|
||||
debug(ap->logopt,
|
||||
"offset %s not mounted",
|
||||
me->key);
|
||||
+ me->flags &= ~MOUNT_FLAG_OFFSET_MOUNTED;
|
||||
return 0;
|
||||
}
|
||||
ioctlfd = open_ioctlfd(ap, me->key, me->dev);
|
||||
@@ -627,6 +628,7 @@ force_umount:
|
||||
rv = umount2(me->key, MNT_DETACH);
|
||||
} else
|
||||
info(ap->logopt, "umounted offset mount %s", me->key);
|
||||
+ me->flags &= ~MOUNT_FLAG_OFFSET_MOUNTED;
|
||||
|
||||
return rv;
|
||||
}
|
||||
@@ -781,6 +783,7 @@ int mount_autofs_offset(struct autofs_po
|
||||
cache_set_ino_index(me->mc, me);
|
||||
notify_mount_result(ap, me->key, timeout, str_offset);
|
||||
ops->close(ap->logopt, ioctlfd);
|
||||
+ me->flags |= MOUNT_FLAG_OFFSET_MOUNTED;
|
||||
|
||||
debug(ap->logopt, "mounted trigger %s", me->key);
|
||||
|
||||
--- autofs-5.1.7.orig/include/automount.h
|
||||
+++ autofs-5.1.7/include/automount.h
|
||||
@@ -543,6 +543,9 @@ struct kernel_mod_version {
|
||||
/* Indicator for applications to ignore the mount entry */
|
||||
#define MOUNT_FLAG_IGNORE 0x1000
|
||||
|
||||
+/* Flag to show we have mounted the offset mount trigger */
|
||||
+#define MOUNT_FLAG_OFFSET_MOUNTED 0x2000
|
||||
+
|
||||
struct autofs_point {
|
||||
pthread_t thid;
|
||||
char *path; /* Mount point name */
|
||||
--- autofs-5.1.7.orig/lib/mounts.c
|
||||
+++ autofs-5.1.7/lib/mounts.c
|
||||
@@ -1882,7 +1882,12 @@ static int tree_mapent_mount_offset(stru
|
||||
if (ret != MOUNT_OFFSET_IGNORE) {
|
||||
warn(ap->logopt, "failed to mount offset");
|
||||
return 0;
|
||||
- } else {
|
||||
+ }
|
||||
+
|
||||
+ /* Only invalidate the offset trigger if a real mount
|
||||
+ * is not covering it.
|
||||
+ */
|
||||
+ if (!(oe->flags & MOUNT_FLAG_OFFSET_MOUNTED)) {
|
||||
debug(ap->logopt,
|
||||
"ignoring \"nohide\" trigger %s", oe->key);
|
||||
/*
|
||||
@ -0,0 +1,40 @@
|
||||
autofs-5.1.9 - fix invalidated map entry handling in hosts module
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
The multi-mount handling must be able to deal with NFS auto-mounting
|
||||
mounts itself within a mount tree. If this happens the mapent will have
|
||||
its ->mapent set to NULL but will not be marked with a negative timeout
|
||||
and mount attempts should silently succeed. All lookup modules handle
|
||||
this ok already except the hosts lookup module so fix it.
|
||||
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/lookup_hosts.c | 5 +++++
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
--- autofs-5.1.7.orig/CHANGELOG
|
||||
+++ autofs-5.1.7/CHANGELOG
|
||||
@@ -183,6 +183,7 @@
|
||||
- fix lock ordering deadlock in expire_cleanup().
|
||||
- Fix incompatible function pointer types in cyrus-sasl module.
|
||||
- fix handling of ignored offsets.
|
||||
+- fix invalidated map entry handling in hosts module.
|
||||
|
||||
25/01/2021 autofs-5.1.7
|
||||
- make bind mounts propagation slave by default.
|
||||
--- autofs-5.1.7.orig/modules/lookup_hosts.c
|
||||
+++ autofs-5.1.7/modules/lookup_hosts.c
|
||||
@@ -428,6 +428,11 @@ int lookup_mount(struct autofs_point *ap
|
||||
* it must be a mount request for one of the exports.
|
||||
*/
|
||||
if (*name == '/') {
|
||||
+ /* Multi-mounts must be able to ignore offsets that have
|
||||
+ * been auto-mounted by NFS itself.
|
||||
+ */
|
||||
+ if (!me->mapent)
|
||||
+ return NSS_STATUS_SUCCESS;
|
||||
pthread_cleanup_push(cache_lock_cleanup, mc);
|
||||
mapent_len = strlen(me->mapent);
|
||||
mapent = malloc(mapent_len + 1);
|
||||
@ -0,0 +1,91 @@
|
||||
autofs-5.1.9 - fix lock ordering deadlock in expire_cleanup()
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
Commit 81ac572466e3 ("autofs-5.1.9 - fix submount shutdown race")
|
||||
introduced a lock ordering deadlock between the state mutex and the
|
||||
mounts hash list mutex when fixing a submount shutdown race. It's enough
|
||||
to just move the conditional alarm set function call outside of the
|
||||
state mutex critical section to fix it.
|
||||
|
||||
Fixes: 81ac572466e3 ("autofs-5.1.9 - fix submount shutdown race")
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
|
||||
autofs-5.1.9 - fix lock ordering deadlock in expire_cleanup()
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
Commit 81ac572466e3 ("autofs-5.1.9 - fix submount shutdown race")
|
||||
introduced a lock ordering deadlock between the state mutex and the
|
||||
mounts hash list mutex when fixing a submount shutdown race. It's enough
|
||||
to just move the conditional alarm set function call outside of the
|
||||
state mutex critical section to fix it.
|
||||
|
||||
Fixes: 81ac572466e3 ("autofs-5.1.9 - fix submount shutdown race")
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
daemon/state.c | 12 ++++++++----
|
||||
2 files changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
--- autofs-5.1.7.orig/CHANGELOG
|
||||
+++ autofs-5.1.7/CHANGELOG
|
||||
@@ -180,6 +180,7 @@
|
||||
- clear per-mount timeout if not set.
|
||||
- fix deadlock in master_notify_submount().
|
||||
- handle sss special case getautomntbyname() error.
|
||||
+- fix lock ordering deadlock in expire_cleanup().
|
||||
|
||||
25/01/2021 autofs-5.1.7
|
||||
- make bind mounts propagation slave by default.
|
||||
--- autofs-5.1.7.orig/daemon/state.c
|
||||
+++ autofs-5.1.7/daemon/state.c
|
||||
@@ -62,8 +62,9 @@ void expire_cleanup(void *arg)
|
||||
pthread_t thid = pthread_self();
|
||||
struct expire_args *ec;
|
||||
struct autofs_point *ap;
|
||||
- int success;
|
||||
enum states next = ST_INVAL;
|
||||
+ unsigned int need_alarm = 0;
|
||||
+ int success;
|
||||
|
||||
ec = (struct expire_args *) arg;
|
||||
ap = ec->ap;
|
||||
@@ -99,7 +100,7 @@ void expire_cleanup(void *arg)
|
||||
}
|
||||
|
||||
if (ap->state == ST_EXPIRE)
|
||||
- conditional_alarm_add(ap, ap->exp_runfreq);
|
||||
+ need_alarm = 1;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
|
||||
@@ -116,7 +117,7 @@ void expire_cleanup(void *arg)
|
||||
rv = ops->askumount(ap->logopt, ap->ioctlfd, &idle);
|
||||
if (!rv && !idle && !ap->shutdown) {
|
||||
next = ST_READY;
|
||||
- conditional_alarm_add(ap, ap->exp_runfreq);
|
||||
+ need_alarm = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -129,7 +130,7 @@ void expire_cleanup(void *arg)
|
||||
|
||||
/* Failed shutdown returns to ready */
|
||||
warn(ap->logopt, "filesystem %s still busy", ap->path);
|
||||
- conditional_alarm_add(ap, ap->exp_runfreq);
|
||||
+ need_alarm = 1;
|
||||
next = ST_READY;
|
||||
break;
|
||||
#endif
|
||||
@@ -156,6 +157,9 @@ void expire_cleanup(void *arg)
|
||||
|
||||
st_mutex_unlock();
|
||||
|
||||
+ if (need_alarm)
|
||||
+ conditional_alarm_add(ap, ap->exp_runfreq);
|
||||
+
|
||||
return;
|
||||
}
|
||||
|
||||
@ -0,0 +1,49 @@
|
||||
autofs-5.1.9 - handle sss special case getautomntbyname() error
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
The sss key lookup (via getautomntbyname()) returns EHOSTDOWN when the
|
||||
entry is invalid, such as when the location is empty. But setatomntent()
|
||||
has already been called successfully so we know the host is up and the
|
||||
map exists hence this probably should be EINVAL.
|
||||
|
||||
In both these cases the better return is NSS_STATUS_UNAVAIL.
|
||||
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/lookup_sss.c | 6 +++---
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
--- autofs-5.1.7.orig/CHANGELOG
|
||||
+++ autofs-5.1.7/CHANGELOG
|
||||
@@ -179,6 +179,7 @@
|
||||
- update per-mount expire timeout on readmap.
|
||||
- clear per-mount timeout if not set.
|
||||
- fix deadlock in master_notify_submount().
|
||||
+- handle sss special case getautomntbyname() error.
|
||||
|
||||
25/01/2021 autofs-5.1.7
|
||||
- make bind mounts propagation slave by default.
|
||||
--- autofs-5.1.7.orig/modules/lookup_sss.c
|
||||
+++ autofs-5.1.7/modules/lookup_sss.c
|
||||
@@ -658,8 +658,8 @@ static int getautomntbyname(unsigned int
|
||||
err = NSS_STATUS_NOTFOUND;
|
||||
goto free;
|
||||
}
|
||||
- if (ret != EHOSTDOWN)
|
||||
- goto error;
|
||||
+ if (ret == EINVAL || ret == EHOSTDOWN)
|
||||
+ goto free;
|
||||
}
|
||||
|
||||
ret = getautomntbyname_wait(logopt, ctxt,
|
||||
@@ -670,7 +670,7 @@ static int getautomntbyname(unsigned int
|
||||
if (ret == ETIMEDOUT)
|
||||
goto error;
|
||||
/* sss proto version 0 and sss timeout not set */
|
||||
- if (ret == EINVAL)
|
||||
+ if (ret == EINVAL || ret == EHOSTDOWN)
|
||||
goto free;
|
||||
if (ret == ENOENT) {
|
||||
err = NSS_STATUS_NOTFOUND;
|
||||
@ -12,15 +12,13 @@
|
||||
Summary: A tool for automatically mounting and unmounting filesystems
|
||||
Name: autofs
|
||||
Version: 5.1.7
|
||||
Release: 60%{?dist}
|
||||
Release: 65%{?dist}
|
||||
Epoch: 1
|
||||
License: GPLv2+
|
||||
Source: https://www.kernel.org/pub/linux/daemons/autofs/v5/autofs-%{version}-2.tar.gz
|
||||
|
||||
# patches 1 and 2 have been applied to the source tar to remove
|
||||
# lib/mount.x as it has an incompatible license.
|
||||
#Patch1: autofs-5.1.7-add-xdr_exports.patch
|
||||
#Patch2: autofs-5.1.7-remove-mount_x-and-rpcgen-dependencies.patch
|
||||
Patch3: autofs-5.1.7-dont-use-realloc-in-host-exports-list-processing.patch
|
||||
Patch4: autofs-5.1.7-use-sprintf-when-constructing-hosts-mapent.patch
|
||||
Patch5: autofs-5.1.7-fix-mnts_remove_amdmount-uses-wrong-list.patch
|
||||
@ -220,6 +218,21 @@ Patch205: autofs-5.1.7-clear-per-mount-timeout-if-not-set.patch
|
||||
# JIRA: RHEL-77321
|
||||
Patch206: autofs-5.1.9-fix-deadlock-in-master_notify_submount.patch
|
||||
|
||||
#JIRA: RHEL-32684
|
||||
Patch207: autofs-5.1.9-handle-sss-special-case-getautomntbyname-error.patch
|
||||
|
||||
#JIRA: RHEL-87031
|
||||
Patch208: autofs-5.1.9-fix-lock-ordering-deadlock-in-expire_cleanup.patch
|
||||
Patch209: autofs-5.1.9-Fix-incompatible-function-pointer-types-in-cyrus-sasl-module.patch
|
||||
|
||||
#JIRA: RHEL-81885
|
||||
Patch210: autofs-5.1.9-fix-handling-of-ignored-offsets.patch
|
||||
Patch211: autofs-5.1.9-fix-invalidated-map-entry-handling-in-hosts-module.patch
|
||||
|
||||
#JIRA: RHEL-85615
|
||||
Patch212: autofs-5.1.8-always-recreate-credential-cache.patch
|
||||
Patch213: autofs-5.1.9-fix-always-recreate-credential-cache.patch
|
||||
|
||||
%if %{with_systemd}
|
||||
BuildRequires: systemd-units
|
||||
BuildRequires: systemd-devel
|
||||
@ -285,198 +298,203 @@ echo %{version}-%{release} > .version
|
||||
%endif
|
||||
# patches 1 and 2 have been applied to the source tar to remove
|
||||
# lib/mount.x as it has an incompatible license.
|
||||
#%patch1 -p1
|
||||
#%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
%patch27 -p1
|
||||
%patch28 -p1
|
||||
%patch29 -p1
|
||||
%patch30 -p1
|
||||
%patch31 -p1
|
||||
%patch32 -p1
|
||||
%patch33 -p1
|
||||
%patch34 -p1
|
||||
%patch35 -p1
|
||||
%patch36 -p1
|
||||
%patch37 -p1
|
||||
%patch38 -p1
|
||||
%patch39 -p1
|
||||
%patch40 -p1
|
||||
%patch41 -p1
|
||||
%patch42 -p1
|
||||
%patch43 -p1
|
||||
%patch44 -p1
|
||||
%patch45 -p1
|
||||
%patch46 -p1
|
||||
%patch47 -p1
|
||||
%patch48 -p1
|
||||
%patch49 -p1
|
||||
%patch50 -p1
|
||||
%patch51 -p1
|
||||
%patch52 -p1
|
||||
%patch53 -p1
|
||||
%patch54 -p1
|
||||
%patch55 -p1
|
||||
%patch56 -p1
|
||||
%patch57 -p1
|
||||
%patch58 -p1
|
||||
%patch59 -p1
|
||||
%patch60 -p1
|
||||
%patch61 -p1
|
||||
%patch62 -p1
|
||||
%patch63 -p1
|
||||
%patch64 -p1
|
||||
%patch65 -p1
|
||||
%patch66 -p1
|
||||
%patch67 -p1
|
||||
%patch68 -p1
|
||||
%patch69 -p1
|
||||
%patch70 -p1
|
||||
%patch71 -p1
|
||||
%patch72 -p1
|
||||
%patch73 -p1
|
||||
%patch74 -p1
|
||||
%patch75 -p1
|
||||
%patch76 -p1
|
||||
%patch77 -p1
|
||||
%patch78 -p1
|
||||
%patch79 -p1
|
||||
%patch80 -p1
|
||||
%patch81 -p1
|
||||
%patch -P 3 -p1
|
||||
%patch -P 4 -p1
|
||||
%patch -P 5 -p1
|
||||
%patch -P 6 -p1
|
||||
%patch -P 7 -p1
|
||||
%patch -P 8 -p1
|
||||
%patch -P 9 -p1
|
||||
%patch -P 10 -p1
|
||||
%patch -P 11 -p1
|
||||
%patch -P 12 -p1
|
||||
%patch -P 13 -p1
|
||||
%patch -P 14 -p1
|
||||
%patch -P 15 -p1
|
||||
%patch -P 16 -p1
|
||||
%patch -P 17 -p1
|
||||
%patch -P 18 -p1
|
||||
%patch -P 19 -p1
|
||||
%patch -P 20 -p1
|
||||
%patch -P 21 -p1
|
||||
%patch -P 22 -p1
|
||||
%patch -P 23 -p1
|
||||
%patch -P 24 -p1
|
||||
%patch -P 25 -p1
|
||||
%patch -P 26 -p1
|
||||
%patch -P 27 -p1
|
||||
%patch -P 28 -p1
|
||||
%patch -P 29 -p1
|
||||
%patch -P 30 -p1
|
||||
%patch -P 31 -p1
|
||||
%patch -P 32 -p1
|
||||
%patch -P 33 -p1
|
||||
%patch -P 34 -p1
|
||||
%patch -P 35 -p1
|
||||
%patch -P 36 -p1
|
||||
%patch -P 37 -p1
|
||||
%patch -P 38 -p1
|
||||
%patch -P 39 -p1
|
||||
%patch -P 40 -p1
|
||||
%patch -P 41 -p1
|
||||
%patch -P 42 -p1
|
||||
%patch -P 43 -p1
|
||||
%patch -P 44 -p1
|
||||
%patch -P 45 -p1
|
||||
%patch -P 46 -p1
|
||||
%patch -P 47 -p1
|
||||
%patch -P 48 -p1
|
||||
%patch -P 49 -p1
|
||||
%patch -P 50 -p1
|
||||
%patch -P 51 -p1
|
||||
%patch -P 52 -p1
|
||||
%patch -P 53 -p1
|
||||
%patch -P 54 -p1
|
||||
%patch -P 55 -p1
|
||||
%patch -P 56 -p1
|
||||
%patch -P 57 -p1
|
||||
%patch -P 58 -p1
|
||||
%patch -P 59 -p1
|
||||
%patch -P 60 -p1
|
||||
%patch -P 61 -p1
|
||||
%patch -P 62 -p1
|
||||
%patch -P 63 -p1
|
||||
%patch -P 64 -p1
|
||||
%patch -P 65 -p1
|
||||
%patch -P 66 -p1
|
||||
%patch -P 67 -p1
|
||||
%patch -P 68 -p1
|
||||
%patch -P 69 -p1
|
||||
%patch -P 70 -p1
|
||||
%patch -P 71 -p1
|
||||
%patch -P 72 -p1
|
||||
%patch -P 73 -p1
|
||||
%patch -P 74 -p1
|
||||
%patch -P 75 -p1
|
||||
%patch -P 76 -p1
|
||||
%patch -P 77 -p1
|
||||
%patch -P 78 -p1
|
||||
%patch -P 79 -p1
|
||||
%patch -P 80 -p1
|
||||
%patch -P 81 -p1
|
||||
|
||||
%patch82 -p1
|
||||
%patch83 -p1
|
||||
%patch84 -p1
|
||||
%patch85 -p1
|
||||
%patch -P 82 -p1
|
||||
%patch -P 83 -p1
|
||||
%patch -P 84 -p1
|
||||
%patch -P 85 -p1
|
||||
|
||||
%patch86 -p1
|
||||
%patch87 -p1
|
||||
%patch88 -p1
|
||||
%patch89 -p1
|
||||
%patch90 -p1
|
||||
%patch91 -p1
|
||||
%patch92 -p1
|
||||
%patch93 -p1
|
||||
%patch94 -p1
|
||||
%patch95 -p1
|
||||
%patch96 -p1
|
||||
%patch97 -p1
|
||||
%patch98 -p1
|
||||
%patch99 -p1
|
||||
%patch100 -p1
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
%patch -P 86 -p1
|
||||
%patch -P 87 -p1
|
||||
%patch -P 88 -p1
|
||||
%patch -P 89 -p1
|
||||
%patch -P 90 -p1
|
||||
%patch -P 91 -p1
|
||||
%patch -P 92 -p1
|
||||
%patch -P 93 -p1
|
||||
%patch -P 94 -p1
|
||||
%patch -P 95 -p1
|
||||
%patch -P 96 -p1
|
||||
%patch -P 97 -p1
|
||||
%patch -P 98 -p1
|
||||
%patch -P 99 -p1
|
||||
%patch -P 100 -p1
|
||||
%patch -P 101 -p1
|
||||
%patch -P 102 -p1
|
||||
|
||||
%patch103 -p1
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
%patch106 -p1
|
||||
%patch107 -p1
|
||||
%patch108 -p1
|
||||
%patch109 -p1
|
||||
%patch110 -p1
|
||||
%patch111 -p1
|
||||
%patch112 -p1
|
||||
%patch113 -p1
|
||||
%patch114 -p1
|
||||
%patch115 -p1
|
||||
%patch116 -p1
|
||||
%patch -P 103 -p1
|
||||
%patch -P 104 -p1
|
||||
%patch -P 105 -p1
|
||||
%patch -P 106 -p1
|
||||
%patch -P 107 -p1
|
||||
%patch -P 108 -p1
|
||||
%patch -P 109 -p1
|
||||
%patch -P 110 -p1
|
||||
%patch -P 111 -p1
|
||||
%patch -P 112 -p1
|
||||
%patch -P 113 -p1
|
||||
%patch -P 114 -p1
|
||||
%patch -P 115 -p1
|
||||
%patch -P 116 -p1
|
||||
|
||||
%patch120 -p1
|
||||
%patch121 -p1
|
||||
%patch122 -p1
|
||||
%patch123 -p1
|
||||
%patch124 -p1
|
||||
%patch125 -p1
|
||||
%patch126 -p1
|
||||
%patch127 -p1
|
||||
%patch128 -p1
|
||||
%patch129 -p1
|
||||
%patch130 -p1
|
||||
%patch131 -p1
|
||||
%patch132 -p1
|
||||
%patch133 -p1
|
||||
%patch134 -p1
|
||||
%patch135 -p1
|
||||
%patch -P 120 -p1
|
||||
%patch -P 121 -p1
|
||||
%patch -P 122 -p1
|
||||
%patch -P 123 -p1
|
||||
%patch -P 124 -p1
|
||||
%patch -P 125 -p1
|
||||
%patch -P 126 -p1
|
||||
%patch -P 127 -p1
|
||||
%patch -P 128 -p1
|
||||
%patch -P 129 -p1
|
||||
%patch -P 130 -p1
|
||||
%patch -P 131 -p1
|
||||
%patch -P 132 -p1
|
||||
%patch -P 133 -p1
|
||||
%patch -P 134 -p1
|
||||
%patch -P 135 -p1
|
||||
|
||||
%patch150 -p1
|
||||
%patch151 -p1
|
||||
%patch152 -p1
|
||||
%patch153 -p1
|
||||
%patch154 -p1
|
||||
%patch155 -p1
|
||||
%patch156 -p1
|
||||
%patch157 -p1
|
||||
%patch158 -p1
|
||||
%patch159 -p1
|
||||
%patch160 -p1
|
||||
%patch161 -p1
|
||||
%patch162 -p1
|
||||
%patch163 -p1
|
||||
%patch164 -p1
|
||||
%patch165 -p1
|
||||
%patch166 -p1
|
||||
%patch167 -p1
|
||||
%patch168 -p1
|
||||
%patch169 -p1
|
||||
%patch170 -p1
|
||||
%patch171 -p1
|
||||
%patch172 -p1
|
||||
%patch173 -p1
|
||||
%patch174 -p1
|
||||
%patch175 -p1
|
||||
%patch -P 150 -p1
|
||||
%patch -P 151 -p1
|
||||
%patch -P 152 -p1
|
||||
%patch -P 153 -p1
|
||||
%patch -P 154 -p1
|
||||
%patch -P 155 -p1
|
||||
%patch -P 156 -p1
|
||||
%patch -P 157 -p1
|
||||
%patch -P 158 -p1
|
||||
%patch -P 159 -p1
|
||||
%patch -P 160 -p1
|
||||
%patch -P 161 -p1
|
||||
%patch -P 162 -p1
|
||||
%patch -P 163 -p1
|
||||
%patch -P 164 -p1
|
||||
%patch -P 165 -p1
|
||||
%patch -P 166 -p1
|
||||
%patch -P 167 -p1
|
||||
%patch -P 168 -p1
|
||||
%patch -P 169 -p1
|
||||
%patch -P 170 -p1
|
||||
%patch -P 171 -p1
|
||||
%patch -P 172 -p1
|
||||
%patch -P 173 -p1
|
||||
%patch -P 174 -p1
|
||||
%patch -P 175 -p1
|
||||
|
||||
%patch176 -p1
|
||||
%patch177 -p1
|
||||
%patch -P 176 -p1
|
||||
%patch -P 177 -p1
|
||||
|
||||
%patch178 -p1
|
||||
%patch179 -p1
|
||||
%patch -P 178 -p1
|
||||
%patch -P 179 -p1
|
||||
|
||||
%patch180 -p1
|
||||
%patch181 -p1
|
||||
%patch182 -p1
|
||||
%patch183 -p1
|
||||
%patch184 -p1
|
||||
%patch185 -p1
|
||||
%patch -P 180 -p1
|
||||
%patch -P 181 -p1
|
||||
%patch -P 182 -p1
|
||||
%patch -P 183 -p1
|
||||
%patch -P 184 -p1
|
||||
%patch -P 185 -p1
|
||||
|
||||
%patch186 -p1
|
||||
%patch187 -p1
|
||||
%patch188 -p1
|
||||
%patch189 -p1
|
||||
%patch190 -p1
|
||||
%patch -P 186 -p1
|
||||
%patch -P 187 -p1
|
||||
%patch -P 188 -p1
|
||||
%patch -P 189 -p1
|
||||
%patch -P 190 -p1
|
||||
|
||||
%patch200 -p1
|
||||
%patch -P 200 -p1
|
||||
|
||||
%patch201 -p1
|
||||
%patch202 -p1
|
||||
%patch203 -p1
|
||||
%patch204 -p1
|
||||
%patch205 -p1
|
||||
%patch -P 201 -p1
|
||||
%patch -P 202 -p1
|
||||
%patch -P 203 -p1
|
||||
%patch -P 204 -p1
|
||||
%patch -P 205 -p1
|
||||
|
||||
%patch206 -p1
|
||||
%patch -P 206 -p1
|
||||
%patch -P 207 -p1
|
||||
%patch -P 208 -p1
|
||||
%patch -P 209 -p1
|
||||
%patch -P 210 -p1
|
||||
%patch -P 211 -p1
|
||||
%patch -P 212 -p1
|
||||
%patch -P 213 -p1
|
||||
|
||||
%build
|
||||
LDFLAGS=-Wl,-z,now
|
||||
@ -585,6 +603,33 @@ fi
|
||||
%dir /etc/auto.master.d
|
||||
|
||||
%changelog
|
||||
* Tue May 13 2025 Ian Kent <ikent@redhat.com> - 1:5.1.7-65
|
||||
- RHEL-85615 - autofs fails to mount shares when using kerberised LDAP
|
||||
- always recreate credential cache.
|
||||
- fix always recreate credential cache.
|
||||
-Resolves: RHEL-85615
|
||||
|
||||
* Wed May 07 2025 Ian Kent <ikent@redhat.com> - 1:5.1.7-64
|
||||
- RHEL-81885 - autofs: segfault while dereferencing null mapent
|
||||
- fix handling of ignored offsets.
|
||||
- fix invalidated map entry handling in hosts module.
|
||||
- fix changelog revision number of previous change.
|
||||
- Resolves: RHEL-81885
|
||||
|
||||
* Wed Apr 16 2025 Ian Kent <ikent@redhat.com> - 1:5.1.7-63
|
||||
- RHEL-87031 - autofs hang - autofs-5.1.4-114.el8_10.2
|
||||
- fix lock ordering deadlock in expire_cleanup().
|
||||
- change spec file %patchN to %patch -P N as required by rpm(8).
|
||||
- Fix compile error caused by function pointer types in cyrus-sasl module.
|
||||
- removed references to patch1 and patch2 due to rbmbuild(8) complaints.
|
||||
- Resolves: RHEL-87031
|
||||
|
||||
* Fri Mar 14 2025 Ian Kent <ikent@redhat.com> - 1:5.1.7-61
|
||||
- RHEL-32684 - sssd autofs fails to get correct EHOSTDOWN if requested
|
||||
incorrect mount after upgrade to sssd-2.9.1-4.el8_9.5.x86_64
|
||||
- handle sss special case getautomntbyname() error
|
||||
- Resolves: RHEL-32684
|
||||
|
||||
* Thu Feb 06 2025 Ian Kent <ikent@redhat.com> - 1:5.1.7-60
|
||||
- RHEL-77321 - autofs: deadlock between mnts_lookup_mount and mnts_remove_mount
|
||||
- fix deadlock in master_notify_submount().
|
||||
|
||||
Loading…
Reference in New Issue
Block a user