- fix some amd map handling problems.
This commit is contained in:
parent
db4d8fe82a
commit
6bb43b6bd8
@ -0,0 +1,56 @@
|
|||||||
|
autofs-5.1.4 - dont use array for path when not necessary
|
||||||
|
|
||||||
|
From: Ian Kent <raven@themaw.net>
|
||||||
|
|
||||||
|
In parse_amd.c:do_link_mount() a character array is used to construct
|
||||||
|
a path when a pointer to the relevant amd entry field is sufficient.
|
||||||
|
|
||||||
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||||
|
---
|
||||||
|
CHANGELOG | 1 +
|
||||||
|
modules/parse_amd.c | 6 +++---
|
||||||
|
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CHANGELOG b/CHANGELOG
|
||||||
|
index 0f30596f..13f01397 100644
|
||||||
|
--- a/CHANGELOG
|
||||||
|
+++ b/CHANGELOG
|
||||||
|
@@ -3,6 +3,7 @@ xx/xx/2018 autofs-5.1.5
|
||||||
|
- fix directory create permission.
|
||||||
|
- fix use after free in do_master_list_reset().
|
||||||
|
- fix deadlock in dumpmaps.
|
||||||
|
+- dont use array for path when not necessary.
|
||||||
|
|
||||||
|
19/12/2017 autofs-5.1.4
|
||||||
|
- fix spec file url.
|
||||||
|
diff --git a/modules/parse_amd.c b/modules/parse_amd.c
|
||||||
|
index c4b3ef0b..2cce5417 100644
|
||||||
|
--- a/modules/parse_amd.c
|
||||||
|
+++ b/modules/parse_amd.c
|
||||||
|
@@ -967,8 +967,8 @@ static int do_auto_mount(struct autofs_point *ap, const char *name,
|
||||||
|
static int do_link_mount(struct autofs_point *ap, const char *name,
|
||||||
|
struct amd_entry *entry, unsigned int flags)
|
||||||
|
{
|
||||||
|
- char target[PATH_MAX + 1];
|
||||||
|
const char *opts = (entry->opts && *entry->opts) ? entry->opts : NULL;
|
||||||
|
+ char *target;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (entry->sublink) {
|
||||||
|
@@ -977,14 +977,14 @@ static int do_link_mount(struct autofs_point *ap, const char *name,
|
||||||
|
"error: sublink option length is too long");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
- strcpy(target, entry->sublink);
|
||||||
|
+ target = entry->sublink;
|
||||||
|
} else {
|
||||||
|
if (strlen(entry->fs) > PATH_MAX) {
|
||||||
|
error(ap->logopt, MODPREFIX
|
||||||
|
"error: fs option length is too long");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
- strcpy(target, entry->fs);
|
||||||
|
+ target = entry->fs;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(flags & CONF_AUTOFS_USE_LOFS))
|
35
autofs-5.1.4-fix-error-return-in-do_nfs_mount.patch
Normal file
35
autofs-5.1.4-fix-error-return-in-do_nfs_mount.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
autofs-5.1.4 - fix error return in do_nfs_mount()
|
||||||
|
|
||||||
|
From: Ian Kent <raven@themaw.net>
|
||||||
|
|
||||||
|
Fix incorrect error return in modules/parse_amd.c:do_nfs_mount().
|
||||||
|
---
|
||||||
|
CHANGELOG | 1 +
|
||||||
|
modules/parse_amd.c | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CHANGELOG b/CHANGELOG
|
||||||
|
index 756ef927..d0cfa19b 100644
|
||||||
|
--- a/CHANGELOG
|
||||||
|
+++ b/CHANGELOG
|
||||||
|
@@ -6,6 +6,7 @@ xx/xx/2018 autofs-5.1.5
|
||||||
|
- dont use array for path when not necessary.
|
||||||
|
- fix prefix option handling in expand_entry().
|
||||||
|
- fix sublink option not set from defaults.
|
||||||
|
+- fix error return in do_nfs_mount().
|
||||||
|
|
||||||
|
19/12/2017 autofs-5.1.4
|
||||||
|
- fix spec file url.
|
||||||
|
diff --git a/modules/parse_amd.c b/modules/parse_amd.c
|
||||||
|
index 1c962fff..2a5d9a30 100644
|
||||||
|
--- a/modules/parse_amd.c
|
||||||
|
+++ b/modules/parse_amd.c
|
||||||
|
@@ -1099,7 +1099,7 @@ static int do_nfs_mount(struct autofs_point *ap, const char *name,
|
||||||
|
if (strlen(entry->rhost) + strlen(entry->rfs) + 1 > PATH_MAX) {
|
||||||
|
error(ap->logopt, MODPREFIX
|
||||||
|
"error: rhost + rfs options length is too long");
|
||||||
|
- return 0;
|
||||||
|
+ return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
strcpy(target, entry->rhost);
|
@ -0,0 +1,55 @@
|
|||||||
|
autofs-5.1.4 - fix prefix option handling in expand_entry()
|
||||||
|
|
||||||
|
From: Ian Kent <raven@themaw.net>
|
||||||
|
|
||||||
|
The changes to fix the defaults handling in the amd map parser caused
|
||||||
|
the prefix option to not be expanded and also to not be propagated to
|
||||||
|
submounts in some cases.
|
||||||
|
|
||||||
|
But the prefix should be expanded in modules/parse_amd.c:expand_entry()
|
||||||
|
along with the reset of the amd map entry fields.
|
||||||
|
|
||||||
|
Just adding this to modules/parse_amd.c:expand_entry() (where it should
|
||||||
|
be) fixes the amd map entry expansion and also fixes the propagation
|
||||||
|
of the prefix to submounts.
|
||||||
|
|
||||||
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||||
|
---
|
||||||
|
CHANGELOG | 1 +
|
||||||
|
modules/parse_amd.c | 11 +++++++++++
|
||||||
|
2 files changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/CHANGELOG b/CHANGELOG
|
||||||
|
index 13f01397..19aec2ae 100644
|
||||||
|
--- a/CHANGELOG
|
||||||
|
+++ b/CHANGELOG
|
||||||
|
@@ -4,6 +4,7 @@ xx/xx/2018 autofs-5.1.5
|
||||||
|
- fix use after free in do_master_list_reset().
|
||||||
|
- fix deadlock in dumpmaps.
|
||||||
|
- dont use array for path when not necessary.
|
||||||
|
+- fix prefix option handling in expand_entry().
|
||||||
|
|
||||||
|
19/12/2017 autofs-5.1.4
|
||||||
|
- fix spec file url.
|
||||||
|
diff --git a/modules/parse_amd.c b/modules/parse_amd.c
|
||||||
|
index 2cce5417..1a5a2960 100644
|
||||||
|
--- a/modules/parse_amd.c
|
||||||
|
+++ b/modules/parse_amd.c
|
||||||
|
@@ -725,6 +725,17 @@ static struct substvar *expand_entry(struct autofs_point *ap,
|
||||||
|
entry->rhost = host;
|
||||||
|
}
|
||||||
|
next:
|
||||||
|
+ if (entry->pref) {
|
||||||
|
+ if (expand_selectors(ap, entry->pref, &expand, sv)) {
|
||||||
|
+ debug(logopt, MODPREFIX
|
||||||
|
+ "pref expand(\"%s\") -> %s",
|
||||||
|
+ entry->pref, expand);
|
||||||
|
+ free(entry->pref);
|
||||||
|
+ entry->pref = expand;
|
||||||
|
+ }
|
||||||
|
+ sv = macro_addvar(sv, "pref", 4, entry->pref);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (entry->sublink) {
|
||||||
|
if (expand_selectors(ap, entry->sublink, &expand, sv)) {
|
||||||
|
debug(logopt, MODPREFIX
|
48
autofs-5.1.4-fix-sublink-option-not-set-from-defaults.patch
Normal file
48
autofs-5.1.4-fix-sublink-option-not-set-from-defaults.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
autofs-5.1.4 - fix sublink option not set from defaults
|
||||||
|
|
||||||
|
From: Ian Kent <raven@themaw.net>
|
||||||
|
|
||||||
|
If the amd entry sublink option is given in a defaults entry
|
||||||
|
it isn't merged into the current entry during parsing.
|
||||||
|
|
||||||
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||||
|
---
|
||||||
|
CHANGELOG | 1 +
|
||||||
|
modules/parse_amd.c | 12 ++++++++++++
|
||||||
|
2 files changed, 13 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/CHANGELOG b/CHANGELOG
|
||||||
|
index 19aec2ae..756ef927 100644
|
||||||
|
--- a/CHANGELOG
|
||||||
|
+++ b/CHANGELOG
|
||||||
|
@@ -5,6 +5,7 @@ xx/xx/2018 autofs-5.1.5
|
||||||
|
- fix deadlock in dumpmaps.
|
||||||
|
- dont use array for path when not necessary.
|
||||||
|
- fix prefix option handling in expand_entry().
|
||||||
|
+- fix sublink option not set from defaults.
|
||||||
|
|
||||||
|
19/12/2017 autofs-5.1.4
|
||||||
|
- fix spec file url.
|
||||||
|
diff --git a/modules/parse_amd.c b/modules/parse_amd.c
|
||||||
|
index 1a5a2960..1c962fff 100644
|
||||||
|
--- a/modules/parse_amd.c
|
||||||
|
+++ b/modules/parse_amd.c
|
||||||
|
@@ -645,6 +645,18 @@ static void update_with_defaults(struct amd_entry *defaults,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!entry->sublink) {
|
||||||
|
+ if (defaults->sublink) {
|
||||||
|
+ tmp = strdup(defaults->sublink);
|
||||||
|
+ if (tmp)
|
||||||
|
+ entry->sublink = tmp;
|
||||||
|
+ } else {
|
||||||
|
+ v = macro_findvar(sv, "sublink", 2);
|
||||||
|
+ if (v)
|
||||||
|
+ entry->sublink = strdup(v->val);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
16
autofs.spec
16
autofs.spec
@ -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: 5%{?dist}
|
Release: 6%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
@ -17,6 +17,10 @@ Patch1: autofs-5.1.4-fix-flag-file-permission.patch
|
|||||||
Patch2: autofs-5.1.4-fix-directory-create-permission.patch
|
Patch2: autofs-5.1.4-fix-directory-create-permission.patch
|
||||||
Patch3: autofs-5.1.4-fix-use-after-free-in-do_master_list_reset.patch
|
Patch3: autofs-5.1.4-fix-use-after-free-in-do_master_list_reset.patch
|
||||||
Patch4: autofs-5.1.4-fix-deadlock-in-dumpmaps.patch
|
Patch4: autofs-5.1.4-fix-deadlock-in-dumpmaps.patch
|
||||||
|
Patch5: autofs-5.1.4-dont-use-array-for-path-when-not-neccessary.patch
|
||||||
|
Patch6: autofs-5.1.4-fix-prefix-option-handling-in-expand_entry.patch
|
||||||
|
Patch7: autofs-5.1.4-fix-sublink-option-not-set-from-defaults.patch
|
||||||
|
Patch8: autofs-5.1.4-fix-error-return-in-do_nfs_mount.patch
|
||||||
|
|
||||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
@ -82,6 +86,10 @@ echo %{version}-%{release} > .version
|
|||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
LDFLAGS=-Wl,-z,now
|
LDFLAGS=-Wl,-z,now
|
||||||
@ -175,6 +183,12 @@ fi
|
|||||||
%dir /etc/auto.master.d
|
%dir /etc/auto.master.d
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 1 2018 Ian Kent <ikent@redhat.com> - 1:5.1.4-6
|
||||||
|
- dont use array for path when not necessary.
|
||||||
|
- fix prefix option handling in expand_entry().
|
||||||
|
- fix sublink option not set from defaults.
|
||||||
|
- fix error return in do_nfs_mount().
|
||||||
|
|
||||||
* Wed Jan 10 2018 Ian Kent <ikent@redhat.com> - 1:5.1.4-5
|
* Wed Jan 10 2018 Ian Kent <ikent@redhat.com> - 1:5.1.4-5
|
||||||
- actually apply fix use after free in do_master_list_reset().
|
- actually apply fix use after free in do_master_list_reset().
|
||||||
- fix deadlock in dumpmaps.
|
- fix deadlock in dumpmaps.
|
||||||
|
Loading…
Reference in New Issue
Block a user