diff --git a/SOURCES/autofs-5.1.8-always-recreate-credential-cache.patch b/SOURCES/autofs-5.1.8-always-recreate-credential-cache.patch new file mode 100644 index 0000000..eda7b44 --- /dev/null +++ b/SOURCES/autofs-5.1.8-always-recreate-credential-cache.patch @@ -0,0 +1,132 @@ +autofs-5.1.8 - always recreate credential cache + +From: Ian Collier + +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 +--- + 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, diff --git a/SOURCES/autofs-5.1.9-Fix-incompatible-function-pointer-types-in-cyrus-sasl-module.patch b/SOURCES/autofs-5.1.9-Fix-incompatible-function-pointer-types-in-cyrus-sasl-module.patch new file mode 100644 index 0000000..20b2dba --- /dev/null +++ b/SOURCES/autofs-5.1.9-Fix-incompatible-function-pointer-types-in-cyrus-sasl-module.patch @@ -0,0 +1,41 @@ +autofs-5.1.9 - Fix incompatible function pointer types in cyrus-sasl module + +From: Florian Weimer + +Add casts to SASL callbacks to avoid incompatible-pointer-types +errors. Avoids a build failure with stricter compilers. + +Signed-off-by: Florian Weimer +Signed-off-by: Ian Kent +--- + 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 }, + }; + diff --git a/SOURCES/autofs-5.1.9-fix-always-recreate-credential-cache.patch b/SOURCES/autofs-5.1.9-fix-always-recreate-credential-cache.patch new file mode 100644 index 0000000..291eb1b --- /dev/null +++ b/SOURCES/autofs-5.1.9-fix-always-recreate-credential-cache.patch @@ -0,0 +1,36 @@ +autofs-5.1.9 - fix always recreate credential cache + +From: Ian Kent + +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, diff --git a/SOURCES/autofs-5.1.9-fix-handling-of-ignored-offsets.patch b/SOURCES/autofs-5.1.9-fix-handling-of-ignored-offsets.patch new file mode 100644 index 0000000..012eed8 --- /dev/null +++ b/SOURCES/autofs-5.1.9-fix-handling-of-ignored-offsets.patch @@ -0,0 +1,89 @@ +autofs-5.1.9 - fix handling of ignored offsets + +From: Ian Kent + +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 +--- + 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); + /* diff --git a/SOURCES/autofs-5.1.9-fix-invalidated-map-entry-handling-in-hosts-module.patch b/SOURCES/autofs-5.1.9-fix-invalidated-map-entry-handling-in-hosts-module.patch new file mode 100644 index 0000000..083a1a1 --- /dev/null +++ b/SOURCES/autofs-5.1.9-fix-invalidated-map-entry-handling-in-hosts-module.patch @@ -0,0 +1,40 @@ +autofs-5.1.9 - fix invalidated map entry handling in hosts module + +From: Ian Kent + +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 +--- + 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); diff --git a/SOURCES/autofs-5.1.9-fix-lock-ordering-deadlock-in-expire_cleanup.patch b/SOURCES/autofs-5.1.9-fix-lock-ordering-deadlock-in-expire_cleanup.patch new file mode 100644 index 0000000..0dac443 --- /dev/null +++ b/SOURCES/autofs-5.1.9-fix-lock-ordering-deadlock-in-expire_cleanup.patch @@ -0,0 +1,91 @@ +autofs-5.1.9 - fix lock ordering deadlock in expire_cleanup() + +From: Ian Kent + +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 +--- + +autofs-5.1.9 - fix lock ordering deadlock in expire_cleanup() + +From: Ian Kent + +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 +--- + 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; + } + diff --git a/SOURCES/autofs-5.1.9-handle-sss-special-case-getautomntbyname-error.patch b/SOURCES/autofs-5.1.9-handle-sss-special-case-getautomntbyname-error.patch new file mode 100644 index 0000000..e2098c7 --- /dev/null +++ b/SOURCES/autofs-5.1.9-handle-sss-special-case-getautomntbyname-error.patch @@ -0,0 +1,49 @@ +autofs-5.1.9 - handle sss special case getautomntbyname() error + +From: Ian Kent + +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 +--- + 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; diff --git a/SPECS/autofs.spec b/SPECS/autofs.spec index 02740d0..206d4f9 100644 --- a/SPECS/autofs.spec +++ b/SPECS/autofs.spec @@ -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 - 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 - 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 - 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 - 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 - 1:5.1.7-60 - RHEL-77321 - autofs: deadlock between mnts_lookup_mount and mnts_remove_mount - fix deadlock in master_notify_submount().