import UBI autofs-5.1.4-113.el8
This commit is contained in:
parent
5bbc3418a3
commit
e7542162a3
152
SOURCES/autofs-5.1.8-allow-null-map-in-indirect-maps.patch
Normal file
152
SOURCES/autofs-5.1.8-allow-null-map-in-indirect-maps.patch
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
autofs-5.1.8 - allow -null map in indirect maps
|
||||||
|
|
||||||
|
From: Ian Kent <raven@themaw.net>
|
||||||
|
|
||||||
|
We have had reports of GUI programs (such as Nautilus) probing for files
|
||||||
|
such as .hidden in the parent directory of the directory being accessed.
|
||||||
|
|
||||||
|
If using an indirect mount map with a wildcard map entry autofs is duty
|
||||||
|
bound to try and mount these which usually results in a mount failure but
|
||||||
|
can also cause lengthy delays in some cases.
|
||||||
|
|
||||||
|
There are some challenges to modifying application code and even if it
|
||||||
|
can be done it's always open to being broken later by developers that
|
||||||
|
aren't aware of the reasoning behind the original changes.
|
||||||
|
|
||||||
|
Now, there is a machanism in autofs that can be used to ignore certain
|
||||||
|
map entries, the "builtin map -null", see auto.master(5). Currently it
|
||||||
|
can be used only in the master map but this change extends it to be used
|
||||||
|
in indirect mount maps as well. In this way it can be used to handle
|
||||||
|
problematic entries by simply adding a map entry that uses the builtin
|
||||||
|
-null map.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
.hidden -null
|
||||||
|
* someserver:/remote/home/&
|
||||||
|
|
||||||
|
This mechanism is not standard so if one is using systems other than
|
||||||
|
those with Linux autofs and central map storage, such as LDAP, then
|
||||||
|
it would be necessary to configure nsswitch to ensure the files map
|
||||||
|
source is consulted first followed by the remote map source. Then the
|
||||||
|
-null map entries included in a local file map that uses plus map
|
||||||
|
inclusion to move on the the central map source if there is no match.
|
||||||
|
|
||||||
|
For example, in /etc/auto.home we can have:
|
||||||
|
.hidden -null
|
||||||
|
+auto.home
|
||||||
|
|
||||||
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||||
|
---
|
||||||
|
CHANGELOG | 1 +
|
||||||
|
daemon/indirect.c | 12 +++++++++++-
|
||||||
|
daemon/lookup.c | 4 ++++
|
||||||
|
include/parse_subs.h | 1 +
|
||||||
|
lib/parse_subs.c | 13 +++++++++++++
|
||||||
|
man/auto.master.5.in | 9 +++++++--
|
||||||
|
6 files changed, 37 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- autofs-5.1.4.orig/CHANGELOG
|
||||||
|
+++ autofs-5.1.4/CHANGELOG
|
||||||
|
@@ -150,6 +150,7 @@
|
||||||
|
- fix some sss error return cases.
|
||||||
|
- fix incorrect matching of cached wildcard key.
|
||||||
|
- fix expire retry looping.
|
||||||
|
+- allow -null map in indirect maps.
|
||||||
|
|
||||||
|
xx/xx/2018 autofs-5.1.5
|
||||||
|
- fix flag file permission.
|
||||||
|
--- autofs-5.1.4.orig/daemon/indirect.c
|
||||||
|
+++ autofs-5.1.4/daemon/indirect.c
|
||||||
|
@@ -796,13 +796,23 @@ int handle_packet_missing_indirect(struc
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* Check if we recorded a mount fail for this key anywhere */
|
||||||
|
me = lookup_source_mapent(ap, pkt->name, LKP_DISTINCT);
|
||||||
|
if (me) {
|
||||||
|
+ /* Check if we recorded a mount fail for this key */
|
||||||
|
if (me->status >= monotonic_time(NULL)) {
|
||||||
|
ops->send_fail(ap->logopt, ap->ioctlfd,
|
||||||
|
pkt->wait_queue_token, -ENOENT);
|
||||||
|
cache_unlock(me->mc);
|
||||||
|
+ master_mutex_unlock();
|
||||||
|
+ pthread_setcancelstate(state, NULL);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Ignore nulled indirect map entries */
|
||||||
|
+ if (starts_with_null_opt(me->mapent)) {
|
||||||
|
+ ops->send_fail(ap->logopt, ap->ioctlfd,
|
||||||
|
+ pkt->wait_queue_token, -ENOENT);
|
||||||
|
+ cache_unlock(me->mc);
|
||||||
|
master_mutex_unlock();
|
||||||
|
pthread_setcancelstate(state, NULL);
|
||||||
|
return 0;
|
||||||
|
--- autofs-5.1.4.orig/daemon/lookup.c
|
||||||
|
+++ autofs-5.1.4/daemon/lookup.c
|
||||||
|
@@ -780,6 +780,10 @@ int lookup_ghost(struct autofs_point *ap
|
||||||
|
goto next;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Ignore nulled indirect map entries */
|
||||||
|
+ if (starts_with_null_opt(me->mapent))
|
||||||
|
+ goto next;
|
||||||
|
+
|
||||||
|
fullpath = make_browse_path(ap->logopt,
|
||||||
|
ap->path, me->key, ap->pref);
|
||||||
|
if (!fullpath)
|
||||||
|
--- autofs-5.1.4.orig/include/parse_subs.h
|
||||||
|
+++ autofs-5.1.4/include/parse_subs.h
|
||||||
|
@@ -122,6 +122,7 @@ int strmcmp(const char *, const char *,
|
||||||
|
char *dequote(const char *, int, unsigned int);
|
||||||
|
int span_space(const char *, unsigned int);
|
||||||
|
char *sanitize_path(const char *, int, unsigned int, unsigned int);
|
||||||
|
+int starts_with_null_opt(const char *);
|
||||||
|
char *merge_options(const char *, const char *);
|
||||||
|
int expandamdent(const char *, char *, const struct substvar *);
|
||||||
|
int expand_selectors(struct autofs_point *, const char *, char **, struct substvar *);
|
||||||
|
--- autofs-5.1.4.orig/lib/parse_subs.c
|
||||||
|
+++ autofs-5.1.4/lib/parse_subs.c
|
||||||
|
@@ -878,6 +878,19 @@ char *sanitize_path(const char *path, in
|
||||||
|
return s_path;
|
||||||
|
}
|
||||||
|
|
||||||
|
+int starts_with_null_opt(const char *str)
|
||||||
|
+{
|
||||||
|
+ if (str && strlen(str) >= 5 && *str == '-') {
|
||||||
|
+ char sep = *(str + 5);
|
||||||
|
+
|
||||||
|
+ if (sep == 0 || sep == ' ' || sep == ',') {
|
||||||
|
+ if (!strncmp(str, "-null", 5))
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static char *hasopt(const char *str, const char *opt)
|
||||||
|
{
|
||||||
|
const size_t optlen = strlen(opt);
|
||||||
|
--- autofs-5.1.4.orig/man/auto.master.5.in
|
||||||
|
+++ autofs-5.1.4/man/auto.master.5.in
|
||||||
|
@@ -267,13 +267,18 @@ master map entry.
|
||||||
|
If "\-null" is given as the map it is used to tell automount(8) to ignore a subsequent
|
||||||
|
master map entry with the given path.
|
||||||
|
.P
|
||||||
|
-It can only be used for paths that appear in the master map (or in direct mount maps).
|
||||||
|
+It can be used for paths that appear in the master map or in direct mount maps (but
|
||||||
|
+not in direct mount maps themselves) or as a key in an indirect mount map.
|
||||||
|
+.P
|
||||||
|
+An indirect mount map key can be nulled. If so the map key is ignored and does not
|
||||||
|
+result in a mount attempt (essentially the key lookup is abandoned early on).
|
||||||
|
.P
|
||||||
|
An indirect mount map top level mount point path can be nulled. If so no mounts from
|
||||||
|
the nulled mount are performed (essentially it isn't mounted).
|
||||||
|
.P
|
||||||
|
Direct mount map path entries can be nulled. Since they must be present at startup
|
||||||
|
-they are (notionally) part of the master map.
|
||||||
|
+they are (notionally) part of the master map so direct mount paths that use the -null
|
||||||
|
+map may be used in the master map to ignore subsequent direct mount map entries.
|
||||||
|
.P
|
||||||
|
A nulled master map entry path will ignore a single subsequent matching entry. Any
|
||||||
|
matching entry following that will be treated as it normally would be. An example
|
44
SOURCES/autofs-5.1.8-fix-multi-mount-check.patch
Normal file
44
SOURCES/autofs-5.1.8-fix-multi-mount-check.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
autofs-5.1.8 - fix multi-mount check
|
||||||
|
|
||||||
|
From: Ian Kent <raven@themaw.net>
|
||||||
|
|
||||||
|
When checking if a mount location is a multi-mount after the first location
|
||||||
|
the next '-' or '/' indicates it's a multi-mount.
|
||||||
|
|
||||||
|
But the '-' can be part of a mount location and can follow a space leading
|
||||||
|
to incorrectly deciding the location is a multi-mount.
|
||||||
|
|
||||||
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||||
|
---
|
||||||
|
CHANGELOG | 1 +
|
||||||
|
modules/parse_sun.c | 9 ++++++++-
|
||||||
|
2 files changed, 9 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- autofs-5.1.4.orig/CHANGELOG
|
||||||
|
+++ autofs-5.1.4/CHANGELOG
|
||||||
|
@@ -151,6 +151,7 @@
|
||||||
|
- fix incorrect matching of cached wildcard key.
|
||||||
|
- fix expire retry looping.
|
||||||
|
- allow -null map in indirect maps.
|
||||||
|
+- fix multi-mount check.
|
||||||
|
|
||||||
|
xx/xx/2018 autofs-5.1.5
|
||||||
|
- fix flag file permission.
|
||||||
|
--- autofs-5.1.4.orig/modules/parse_sun.c
|
||||||
|
+++ autofs-5.1.4/modules/parse_sun.c
|
||||||
|
@@ -786,7 +786,14 @@ static int check_is_multi(const char *ma
|
||||||
|
if (not_first_chunk) {
|
||||||
|
if (*p == '"')
|
||||||
|
p++;
|
||||||
|
- if (*p == '/' || *p == '-') {
|
||||||
|
+ /*
|
||||||
|
+ * Although an options string here would mean
|
||||||
|
+ * we have a multi-mount we can't rely on it
|
||||||
|
+ * since it's also valid in a mount location.
|
||||||
|
+ */
|
||||||
|
+ if (*p == '-')
|
||||||
|
+ p++;
|
||||||
|
+ if (*p == '/') {
|
||||||
|
multi = 1;
|
||||||
|
break;
|
||||||
|
}
|
@ -16,9 +16,9 @@ Signed-off-by: Ian Kent <raven@themaw.net>
|
|||||||
|
|
||||||
--- autofs-5.1.4.orig/CHANGELOG
|
--- autofs-5.1.4.orig/CHANGELOG
|
||||||
+++ autofs-5.1.4/CHANGELOG
|
+++ autofs-5.1.4/CHANGELOG
|
||||||
@@ -151,6 +151,7 @@
|
@@ -153,6 +153,7 @@
|
||||||
- fix incorrect matching of cached wildcard key.
|
- allow -null map in indirect maps.
|
||||||
- fix expire retry looping.
|
- fix multi-mount check.
|
||||||
- fix get parent multi-mount check in try_remount().
|
- fix get parent multi-mount check in try_remount().
|
||||||
+- fix deadlock in remount.
|
+- fix deadlock in remount.
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Signed-off-by: Ian Kent <raven@themaw.net>
|
|||||||
- fix flag file permission.
|
- fix flag file permission.
|
||||||
--- autofs-5.1.4.orig/modules/parse_sun.c
|
--- autofs-5.1.4.orig/modules/parse_sun.c
|
||||||
+++ autofs-5.1.4/modules/parse_sun.c
|
+++ autofs-5.1.4/modules/parse_sun.c
|
||||||
@@ -881,7 +881,18 @@ update_offset_entry(struct autofs_point
|
@@ -888,7 +888,18 @@ update_offset_entry(struct autofs_point
|
||||||
strcpy(m_mapent, loc);
|
strcpy(m_mapent, loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ Signed-off-by: Ian Kent <raven@themaw.net>
|
|||||||
ret = cache_update_offset(mc, name, m_key, m_mapent, age);
|
ret = cache_update_offset(mc, name, m_key, m_mapent, age);
|
||||||
|
|
||||||
me = cache_lookup_distinct(mc, m_key);
|
me = cache_lookup_distinct(mc, m_key);
|
||||||
@@ -1573,7 +1584,18 @@ dont_expand:
|
@@ -1580,7 +1591,18 @@ dont_expand:
|
||||||
free(myoptions);
|
free(myoptions);
|
||||||
} while (*p == '/' || (*p == '"' && *(p + 1) == '/'));
|
} while (*p == '/' || (*p == '"' && *(p + 1) == '/'));
|
||||||
|
|
||||||
|
@ -22,10 +22,10 @@ Signed-off-by: Ian Kent <raven@themaw.net>
|
|||||||
|
|
||||||
--- autofs-5.1.4.orig/CHANGELOG
|
--- autofs-5.1.4.orig/CHANGELOG
|
||||||
+++ autofs-5.1.4/CHANGELOG
|
+++ autofs-5.1.4/CHANGELOG
|
||||||
@@ -150,6 +150,7 @@
|
@@ -152,6 +152,7 @@
|
||||||
- fix some sss error return cases.
|
|
||||||
- fix incorrect matching of cached wildcard key.
|
|
||||||
- fix expire retry looping.
|
- fix expire retry looping.
|
||||||
|
- allow -null map in indirect maps.
|
||||||
|
- fix multi-mount check.
|
||||||
+- fix get parent multi-mount check in try_remount().
|
+- fix get parent multi-mount check in try_remount().
|
||||||
|
|
||||||
xx/xx/2018 autofs-5.1.5
|
xx/xx/2018 autofs-5.1.5
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
Summary: A tool for automatically mounting and unmounting filesystems
|
Summary: A tool for automatically mounting and unmounting filesystems
|
||||||
Name: autofs
|
Name: autofs
|
||||||
Version: 5.1.4
|
Version: 5.1.4
|
||||||
Release: 109%{?dist}.1
|
Release: 113%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
@ -326,8 +326,11 @@ Patch324: autofs-5.1.8-fix-some-sss-error-return-cases.patch
|
|||||||
Patch325: autofs-5.1.8-fix-incorrect-matching-of-cached-wildcard-key.patch
|
Patch325: autofs-5.1.8-fix-incorrect-matching-of-cached-wildcard-key.patch
|
||||||
Patch326: autofs-5.1.8-fix-expire-retry-looping.patch
|
Patch326: autofs-5.1.8-fix-expire-retry-looping.patch
|
||||||
|
|
||||||
Patch327: autofs-5.1.9-fix-get-parent-multi-mount-check-in-try_remount.patch
|
Patch327: autofs-5.1.8-allow-null-map-in-indirect-maps.patch
|
||||||
Patch328: autofs-5.1.9-fix-deadlock-in-remount.patch
|
Patch328: autofs-5.1.8-fix-multi-mount-check.patch
|
||||||
|
|
||||||
|
Patch329: autofs-5.1.9-fix-get-parent-multi-mount-check-in-try_remount.patch
|
||||||
|
Patch330: autofs-5.1.9-fix-deadlock-in-remount.patch
|
||||||
|
|
||||||
%if %{with_systemd}
|
%if %{with_systemd}
|
||||||
BuildRequires: systemd-units
|
BuildRequires: systemd-units
|
||||||
@ -698,6 +701,9 @@ echo %{version}-%{release} > .version
|
|||||||
%patch327 -p1
|
%patch327 -p1
|
||||||
%patch328 -p1
|
%patch328 -p1
|
||||||
|
|
||||||
|
%patch329 -p1
|
||||||
|
%patch330 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
LDFLAGS=-Wl,-z,now
|
LDFLAGS=-Wl,-z,now
|
||||||
%configure --disable-mount-locking --enable-ignore-busy --with-libtirpc --without-hesiod %{?systemd_configure_arg:}
|
%configure --disable-mount-locking --enable-ignore-busy --with-libtirpc --without-hesiod %{?systemd_configure_arg:}
|
||||||
@ -792,12 +798,28 @@ fi
|
|||||||
%dir /etc/auto.master.d
|
%dir /etc/auto.master.d
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jan 11 2024 Ian Kent <ikent@redhat.com> - 5.1.4-109.el8_9.1
|
* Mon Dec 18 2023 Ian Kent <ikent@redhat.com> - 5.1.4-113
|
||||||
- RHEL-21288 - SIGSEGV using hierarchical map entries on reload with
|
- RHEL-18035 - SIGSEGV using hierarchical map entries on reload with
|
||||||
autofs-5.1.4-109
|
autofs-5.1.4-109
|
||||||
- fix get parent multi-mount check in try_remount().
|
- fix get parent multi-mount check in try_remount().
|
||||||
- fix deadlock in remount.
|
- fix deadlock in remount.
|
||||||
- Resolves: RHEL-21288
|
- Resolves: RHEL-18035
|
||||||
|
|
||||||
|
* Mon Sep 18 2023 Ian Kent <ikent@redhat.com> - 5.1.4-112
|
||||||
|
- RHEL-7997 - multi mount detection fails for share with blank+dash
|
||||||
|
causing SEGV crash
|
||||||
|
-fix multi-mount check.
|
||||||
|
-Resolves: RHEL-7997
|
||||||
|
|
||||||
|
* Mon Sep 18 2023 Ian Kent <ikent@redhat.com> - 5.1.4-111
|
||||||
|
- RHEL-12369 - autofs attempts to mount nonexistant ".hidden" filesystems
|
||||||
|
- update patch "allow -null map in indirect maps".
|
||||||
|
- Resolves: RHEL-12369
|
||||||
|
|
||||||
|
* Mon Sep 18 2023 Ian Kent <ikent@redhat.com> - 5.1.4-110
|
||||||
|
- bz2232402 - autofs attempts to mount nonexistant ".hidden" filesystems
|
||||||
|
- allow -null map in indirect maps.
|
||||||
|
- Resolves: rhbz#2232402
|
||||||
|
|
||||||
* Fri Jul 14 2023 Ian Kent <ikent@redhat.com> - 5.1.4-109
|
* Fri Jul 14 2023 Ian Kent <ikent@redhat.com> - 5.1.4-109
|
||||||
- bz2213267 - filesystems mount and expire immediately
|
- bz2213267 - filesystems mount and expire immediately
|
||||||
|
Loading…
Reference in New Issue
Block a user