- add a number of upstream bug fixes and remove an ancient kernel Requires.
This commit is contained in:
parent
90618b31ec
commit
0e5314c98d
49
autofs-5.1.0-clarify-multiple-mounts-description.patch
Normal file
49
autofs-5.1.0-clarify-multiple-mounts-description.patch
Normal file
@ -0,0 +1,49 @@
|
||||
autofs-5.1.0 - clarify multiple mounts description
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
Try and clarify the "Multiple Mounts" and "Replicated Server" sections
|
||||
in the autofs(5) man page.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
man/autofs.5 | 8 ++++++--
|
||||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index 519fea3..c6d8933 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -30,6 +30,7 @@
|
||||
- fix reset amd lexer scan buffer.
|
||||
- ignore multiple commas in options strings.
|
||||
- fix typo in flagdir configure option.
|
||||
+- clarify multiple mounts description.
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/man/autofs.5 b/man/autofs.5
|
||||
index 81ae375..6c53520 100644
|
||||
--- a/man/autofs.5
|
||||
+++ b/man/autofs.5
|
||||
@@ -211,15 +211,19 @@ can be used to name multiple filesystems to mount. It takes the form:
|
||||
.RS +.2i
|
||||
.ta 1.0i
|
||||
.nf
|
||||
-.BI "key [" -options "] [mount-point [" -options "] location...]..."
|
||||
+.BI "key [ -options ] [[/] location [/relative-mount-point [ -options ] location...]..."
|
||||
.fi
|
||||
.RE
|
||||
.sp
|
||||
.P
|
||||
This may extend over multiple lines, quoting the line-breaks with \`\\\'.
|
||||
If present, the per-mountpoint mount-options are appended to the
|
||||
-default mount-options.
|
||||
+default mount-options. This behaviour may be overridden by the append_options
|
||||
+configuration setting.
|
||||
.SS Replicated Server
|
||||
+A mount location can specify multiple hosts for a location, portentially
|
||||
+with a different export path for the same file system. Historically these
|
||||
+different locations are read-only and provide the same replicated file system.
|
||||
.sp
|
||||
.RS +.2i
|
||||
.ta 1.5i
|
@ -0,0 +1,36 @@
|
||||
autofs-5.1.0 - fix hosts map options check in lookup_amd_instance()
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
Ongoing bug fixes have caused a hosts map source check in lookup_amd_instance()
|
||||
to be inconsistent and consequently not find the iexpected map source.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
daemon/lookup.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index f291095..d693bce 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -22,6 +22,7 @@
|
||||
- fix leak in parse_mount().
|
||||
- add mutex call return check in defaults.c.
|
||||
- force disable browse mode for amd format maps.
|
||||
+- fix hosts map options check in lookup_amd_instance().
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/daemon/lookup.c b/daemon/lookup.c
|
||||
index 1761f7e..1a0881f 100644
|
||||
--- a/daemon/lookup.c
|
||||
+++ b/daemon/lookup.c
|
||||
@@ -843,7 +843,7 @@ static int lookup_amd_instance(struct autofs_point *ap,
|
||||
return NSS_STATUS_UNKNOWN;
|
||||
}
|
||||
|
||||
- if (entry->opts) {
|
||||
+ if (entry->opts && *entry->opts) {
|
||||
argv[0] = entry->opts;
|
||||
argv[1] = NULL;
|
||||
pargv = argv;
|
39
autofs-5.1.0-fix-mem-leak-in-create_client.patch
Normal file
39
autofs-5.1.0-fix-mem-leak-in-create_client.patch
Normal file
@ -0,0 +1,39 @@
|
||||
autofs-5.1.0 - fix memory leak in create_client()
|
||||
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
|
||||
In create_client(), if the target host is unreachable the function
|
||||
exists without freeing the addrinfo data returned from getaddrinfo(3).
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
lib/rpc_subs.c | 4 +++-
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index d693bce..0cb1d36 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -23,6 +23,7 @@
|
||||
- add mutex call return check in defaults.c.
|
||||
- force disable browse mode for amd format maps.
|
||||
- fix hosts map options check in lookup_amd_instance().
|
||||
+- fix memory leak in create_client().
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c
|
||||
index 5d6ead0..846c40e 100644
|
||||
--- a/lib/rpc_subs.c
|
||||
+++ b/lib/rpc_subs.c
|
||||
@@ -720,8 +720,10 @@ static int create_client(struct conn_info *info, CLIENT **client)
|
||||
ret = rpc_do_create_client(haddr->ai_addr, info, &fd, client);
|
||||
if (ret == 0)
|
||||
break;
|
||||
- if (ret == -EHOSTUNREACH)
|
||||
+ if (ret == -EHOSTUNREACH) {
|
||||
+ freeaddrinfo(ai);
|
||||
goto out_close;
|
||||
+ }
|
||||
|
||||
if (!info->client && fd != RPC_ANYSOCK) {
|
||||
close(fd);
|
39
autofs-5.1.0-fix-memory-leak-in-get_defaults_entry.patch
Normal file
39
autofs-5.1.0-fix-memory-leak-in-get_defaults_entry.patch
Normal file
@ -0,0 +1,39 @@
|
||||
autofs-5.1.0 - fix memory leak in get_defaults_entry()
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
In get_defaults_entry(), if parsing of the expanded defaults string fails
|
||||
the expanded string used for the parse is not freed.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/parse_amd.c | 4 +++-
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index 2bb0500..439a51f 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -25,6 +25,7 @@
|
||||
- fix hosts map options check in lookup_amd_instance().
|
||||
- fix memory leak in create_client().
|
||||
- fix memory leak in get_exports().
|
||||
+- fix memory leak in get_defaults_entry().
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/modules/parse_amd.c b/modules/parse_amd.c
|
||||
index a912385..ebf3807 100644
|
||||
--- a/modules/parse_amd.c
|
||||
+++ b/modules/parse_amd.c
|
||||
@@ -1797,8 +1797,10 @@ static struct amd_entry *get_defaults_entry(struct autofs_point *ap,
|
||||
char *expand;
|
||||
if (!expand_selectors(ap, defaults, &expand, sv))
|
||||
goto out;
|
||||
- if (amd_parse_list(ap, expand, &dflts, &sv))
|
||||
+ if (amd_parse_list(ap, expand, &dflts, &sv)) {
|
||||
+ free(expand);
|
||||
goto out;
|
||||
+ }
|
||||
entry = select_default_entry(ap, &dflts, sv);
|
||||
if (!entry->map_type) {
|
||||
/*
|
85
autofs-5.1.0-fix-memory-leak-in-get_exports.patch
Normal file
85
autofs-5.1.0-fix-memory-leak-in-get_exports.patch
Normal file
@ -0,0 +1,85 @@
|
||||
autofs-5.1.0 - fix memory leak in get_exports()
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
In modules/lookup_hosts.c:get_exports() looping over the returned list of
|
||||
exports uses the pointer that contains the list. The pointer is updated
|
||||
in the process of creating the exports multi-mount so a pointer to the
|
||||
returned list is no longer available to be freed when done.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/lookup_hosts.c | 17 +++++++++--------
|
||||
2 files changed, 10 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index 0cb1d36..2bb0500 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -24,6 +24,7 @@
|
||||
- force disable browse mode for amd format maps.
|
||||
- fix hosts map options check in lookup_amd_instance().
|
||||
- fix memory leak in create_client().
|
||||
+- fix memory leak in get_exports().
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/modules/lookup_hosts.c b/modules/lookup_hosts.c
|
||||
index ea8f5d6..9d689ff 100644
|
||||
--- a/modules/lookup_hosts.c
|
||||
+++ b/modules/lookup_hosts.c
|
||||
@@ -82,18 +82,19 @@ static char *get_exports(struct autofs_point *ap, const char *host)
|
||||
{
|
||||
char buf[MAX_ERR_BUF];
|
||||
char *mapent;
|
||||
- exports exp;
|
||||
+ exports exp, this;
|
||||
|
||||
debug(ap->logopt, MODPREFIX "fetchng export list for %s", host);
|
||||
|
||||
exp = rpc_get_exports(host, 10, 0, RPC_CLOSE_NOLINGER);
|
||||
|
||||
mapent = NULL;
|
||||
- while (exp) {
|
||||
+ this = exp;
|
||||
+ while (this) {
|
||||
if (mapent) {
|
||||
int len = strlen(mapent) + 1;
|
||||
|
||||
- len += strlen(host) + 2*(strlen(exp->ex_dir) + 2) + 3;
|
||||
+ len += strlen(host) + 2*(strlen(this->ex_dir) + 2) + 3;
|
||||
mapent = realloc(mapent, len);
|
||||
if (!mapent) {
|
||||
char *estr;
|
||||
@@ -103,10 +104,10 @@ static char *get_exports(struct autofs_point *ap, const char *host)
|
||||
return NULL;
|
||||
}
|
||||
strcat(mapent, " \"");
|
||||
- strcat(mapent, exp->ex_dir);
|
||||
+ strcat(mapent, this->ex_dir);
|
||||
strcat(mapent, "\"");
|
||||
} else {
|
||||
- int len = 2*(strlen(exp->ex_dir) + 2) + strlen(host) + 3;
|
||||
+ int len = 2*(strlen(this->ex_dir) + 2) + strlen(host) + 3;
|
||||
|
||||
mapent = malloc(len);
|
||||
if (!mapent) {
|
||||
@@ -117,16 +118,16 @@ static char *get_exports(struct autofs_point *ap, const char *host)
|
||||
return NULL;
|
||||
}
|
||||
strcpy(mapent, "\"");
|
||||
- strcat(mapent, exp->ex_dir);
|
||||
+ strcat(mapent, this->ex_dir);
|
||||
strcat(mapent, "\"");
|
||||
}
|
||||
strcat(mapent, " \"");
|
||||
strcat(mapent, host);
|
||||
strcat(mapent, ":");
|
||||
- strcat(mapent, exp->ex_dir);
|
||||
+ strcat(mapent, this->ex_dir);
|
||||
strcat(mapent, "\"");
|
||||
|
||||
- exp = exp->ex_next;
|
||||
+ this = this->ex_next;
|
||||
}
|
||||
rpc_exports_free(exp);
|
||||
|
@ -0,0 +1,43 @@
|
||||
autofs-5.1.0 - fix out of order clearing of options buffer
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
When setting the result of parsing an options string the options buffer
|
||||
was being cleared before use.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/amd_parse.y | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index 439a51f..51c935d 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -26,6 +26,7 @@
|
||||
- fix memory leak in create_client().
|
||||
- fix memory leak in get_exports().
|
||||
- fix memory leak in get_defaults_entry().
|
||||
+- fix out of order clearing of options buffer.
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/modules/amd_parse.y b/modules/amd_parse.y
|
||||
index f65ab7a..a7f38f8 100644
|
||||
--- a/modules/amd_parse.y
|
||||
+++ b/modules/amd_parse.y
|
||||
@@ -396,7 +396,6 @@ option_assignment: MAP_OPTION OPTION_ASSIGN FS_TYPE
|
||||
}
|
||||
| MNT_OPTION OPTION_ASSIGN options
|
||||
{
|
||||
- memset(opts, 0, sizeof(opts));
|
||||
if (!strcmp($1, "opts"))
|
||||
entry.opts = amd_strdup(opts);
|
||||
else if (!strcmp($1, "addopts"))
|
||||
@@ -407,6 +406,7 @@ option_assignment: MAP_OPTION OPTION_ASSIGN FS_TYPE
|
||||
amd_notify($1);
|
||||
YYABORT;
|
||||
}
|
||||
+ memset(opts, 0, sizeof(opts));
|
||||
}
|
||||
| MNT_OPTION OPTION_ASSIGN
|
||||
{
|
231
autofs-5.1.0-fix-reset-amd-lexer-scan-buffer.patch
Normal file
231
autofs-5.1.0-fix-reset-amd-lexer-scan-buffer.patch
Normal file
@ -0,0 +1,231 @@
|
||||
autofs-5.1.0 - fix reset amd lexer scan buffer
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
When the amd parser encounters an error often the lexer is left in
|
||||
a state where a new parse can't be started. Fix this by explicitly
|
||||
naming our start states and resetting to the proper start state at
|
||||
buffer initialization on each scan.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/amd_tok.l | 59 +++++++++++++++++++++++++++++++--------------------
|
||||
modules/parse_amd.c | 3 +++
|
||||
3 files changed, 40 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index 51c935d..fe9b2f9 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -27,6 +27,7 @@
|
||||
- fix memory leak in get_exports().
|
||||
- fix memory leak in get_defaults_entry().
|
||||
- fix out of order clearing of options buffer.
|
||||
+- fix reset amd lexer scan buffer.
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/modules/amd_tok.l b/modules/amd_tok.l
|
||||
index 1d9c234..36bce49 100644
|
||||
--- a/modules/amd_tok.l
|
||||
+++ b/modules/amd_tok.l
|
||||
@@ -1,4 +1,3 @@
|
||||
-%{
|
||||
/* ----------------------------------------------------------------------- *
|
||||
*
|
||||
* Copyright 2013 Ian Kent <raven@themaw.net>
|
||||
@@ -18,6 +17,12 @@
|
||||
*
|
||||
* ----------------------------------------------------------------------- */
|
||||
|
||||
+%s START MAPOPTVAL FSOPTVAL MNTOPTVAL SELOPTVAL SELARGVAL
|
||||
+
|
||||
+%{
|
||||
+
|
||||
+static int reset_start_state = 0;
|
||||
+
|
||||
#ifdef ECHO
|
||||
# undef ECHO
|
||||
#endif
|
||||
@@ -71,8 +76,6 @@ int amd_yyinput(char *, int);
|
||||
|
||||
%option nounput
|
||||
|
||||
-%x MAPOPTVAL FSOPTVAL MNTOPTVAL SELOPTVAL SELARGVAL
|
||||
-
|
||||
NL \r?\n
|
||||
OPTWS [[:blank:]]*
|
||||
OTHR [^!;:=/|\- \t\r\n#]*
|
||||
@@ -120,7 +123,14 @@ CUTSEP (\|\||\/)
|
||||
|
||||
%%
|
||||
|
||||
-<INITIAL>{
|
||||
+%{
|
||||
+ if (reset_start_state) {
|
||||
+ BEGIN START;
|
||||
+ reset_start_state = 0;
|
||||
+ }
|
||||
+%}
|
||||
+
|
||||
+<START>{
|
||||
{NL} |
|
||||
\x00 { }
|
||||
|
||||
@@ -179,23 +189,23 @@ CUTSEP (\|\||\/)
|
||||
|
||||
<MAPOPTVAL>{
|
||||
{NL} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
\x00 {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
";" {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
}
|
||||
|
||||
{OPTWS} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SPACE;
|
||||
}
|
||||
|
||||
@@ -224,23 +234,23 @@ CUTSEP (\|\||\/)
|
||||
|
||||
<FSOPTVAL>{
|
||||
{NL} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
\x00 {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
";" {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
}
|
||||
|
||||
{OPTWS} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SPACE;
|
||||
}
|
||||
|
||||
@@ -254,23 +264,23 @@ CUTSEP (\|\||\/)
|
||||
|
||||
<MNTOPTVAL>{
|
||||
{NL} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
\x00 {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
";" {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
}
|
||||
|
||||
{OPTWS} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SPACE;
|
||||
}
|
||||
|
||||
@@ -286,23 +296,23 @@ CUTSEP (\|\||\/)
|
||||
|
||||
<SELOPTVAL>{
|
||||
{NL} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
\x00 {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
";" {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
}
|
||||
|
||||
{OPTWS} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SPACE;
|
||||
}
|
||||
|
||||
@@ -318,18 +328,18 @@ CUTSEP (\|\||\/)
|
||||
|
||||
<SELARGVAL>{
|
||||
{NL} {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
\x00 {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
yyless(1);
|
||||
}
|
||||
|
||||
";" {
|
||||
- BEGIN(INITIAL);
|
||||
+ BEGIN(START);
|
||||
return SEPERATOR;
|
||||
}
|
||||
|
||||
@@ -391,6 +401,9 @@ static void amd_echo(void)
|
||||
|
||||
void amd_set_scan_buffer(const char *buffer)
|
||||
{
|
||||
+ YY_FLUSH_BUFFER;
|
||||
+ reset_start_state = 1;
|
||||
+
|
||||
line = buffer;
|
||||
line_pos = &line[0];
|
||||
/*
|
||||
diff --git a/modules/parse_amd.c b/modules/parse_amd.c
|
||||
index ebf3807..9590cf4 100644
|
||||
--- a/modules/parse_amd.c
|
||||
+++ b/modules/parse_amd.c
|
||||
@@ -1798,6 +1798,9 @@ static struct amd_entry *get_defaults_entry(struct autofs_point *ap,
|
||||
if (!expand_selectors(ap, defaults, &expand, sv))
|
||||
goto out;
|
||||
if (amd_parse_list(ap, expand, &dflts, &sv)) {
|
||||
+ error(ap->logopt, MODPREFIX
|
||||
+ "failed to parse defaults entry, "
|
||||
+ "attempting to use internal default");
|
||||
free(expand);
|
||||
goto out;
|
||||
}
|
51
autofs-5.1.0-fix-typo-in-flagdir-configure-option.patch
Normal file
51
autofs-5.1.0-fix-typo-in-flagdir-configure-option.patch
Normal file
@ -0,0 +1,51 @@
|
||||
autofs-5.1.0 - fix typo in flagdir configure option
|
||||
|
||||
From: Michael Tokarev <mjt@tls.msk.ru>
|
||||
|
||||
This problem was originally reported, and a patch offered, by
|
||||
Michael Tokarev but was inadvertantly missed, so the change is
|
||||
credited to him in retrospect.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
configure | 2 +-
|
||||
configure.in | 2 +-
|
||||
3 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index 2b7d55a..519fea3 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -29,6 +29,7 @@
|
||||
- fix out of order clearing of options buffer.
|
||||
- fix reset amd lexer scan buffer.
|
||||
- ignore multiple commas in options strings.
|
||||
+- fix typo in flagdir configure option.
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/configure b/configure
|
||||
index dcb82cd..2349bf9 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -2381,7 +2381,7 @@ if test "${with_flagdir+set}" = set; then :
|
||||
then
|
||||
:
|
||||
else
|
||||
- filagdir="${withval}"
|
||||
+ flagdir="${withval}"
|
||||
fi
|
||||
|
||||
fi
|
||||
diff --git a/configure.in b/configure.in
|
||||
index cd3e7a3..b92f3c5 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -114,7 +114,7 @@ AC_ARG_WITH(flagdir,
|
||||
then
|
||||
:
|
||||
else
|
||||
- filagdir="${withval}"
|
||||
+ flagdir="${withval}"
|
||||
fi
|
||||
)
|
||||
AC_MSG_CHECKING([for autofs flag file directory])
|
@ -0,0 +1,52 @@
|
||||
autofs-5.1.0 - force disable browse mode for amd format maps
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
As in am-utils amd format maps using autofs file system don't support
|
||||
the browse option and in autofs they don't work properly if it is used.
|
||||
|
||||
This might be implemented later but for now forcefully disable it.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
lib/master_parse.y | 2 ++
|
||||
modules/mount_autofs.c | 2 ++
|
||||
3 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index 31a804d..f291095 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -21,6 +21,7 @@
|
||||
- fix copy and paste error in dup_defaults_entry().
|
||||
- fix leak in parse_mount().
|
||||
- add mutex call return check in defaults.c.
|
||||
+- force disable browse mode for amd format maps.
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/lib/master_parse.y b/lib/master_parse.y
|
||||
index e31023d..9da78fc 100644
|
||||
--- a/lib/master_parse.y
|
||||
+++ b/lib/master_parse.y
|
||||
@@ -810,6 +810,8 @@ int master_parse_entry(const char *buffer, unsigned int default_timeout, unsigne
|
||||
logopt = LOGOPT_DEBUG;
|
||||
else if (loglevel <= LOG_INFO && loglevel > LOG_ERR)
|
||||
logopt = LOGOPT_VERBOSE;
|
||||
+ /* amd mounts don't support browse mode */
|
||||
+ ghost = 0;
|
||||
}
|
||||
|
||||
|
||||
diff --git a/modules/mount_autofs.c b/modules/mount_autofs.c
|
||||
index c7cba3a..4846e7f 100644
|
||||
--- a/modules/mount_autofs.c
|
||||
+++ b/modules/mount_autofs.c
|
||||
@@ -261,6 +261,8 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name,
|
||||
nap->pref = am_entry->pref;
|
||||
am_entry->pref = NULL;
|
||||
}
|
||||
+ /* amd mounts don't support browse mode */
|
||||
+ nap->flags &= ~MOUNT_FLAG_GHOST;
|
||||
}
|
||||
|
||||
if (handle_mounts_startup_cond_init(&suc)) {
|
63
autofs-5.1.0-gaurd-against-incorrect-umount-return.patch
Normal file
63
autofs-5.1.0-gaurd-against-incorrect-umount-return.patch
Normal file
@ -0,0 +1,63 @@
|
||||
autofs-5.1.0 - gaurd against incorrect umount return
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
If umount(8) returns a fail but the mount is actually umounted autofs
|
||||
can incorrectly try reconstruct mount triggers. This can lead to the
|
||||
automount point becoming unresponsive.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
daemon/automount.c | 3 ++-
|
||||
lib/mounts.c | 6 ++++--
|
||||
3 files changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index c6d8933..f7b2ec1 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -31,6 +31,7 @@
|
||||
- ignore multiple commas in options strings.
|
||||
- fix typo in flagdir configure option.
|
||||
- clarify multiple mounts description.
|
||||
+- gaurd against incorrect umount return.
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/daemon/automount.c b/daemon/automount.c
|
||||
index 64dc305..229cb1a 100644
|
||||
--- a/daemon/automount.c
|
||||
+++ b/daemon/automount.c
|
||||
@@ -532,7 +532,8 @@ static int umount_subtree_mounts(struct autofs_point *ap, const char *path, unsi
|
||||
if (!is_mm_root && is_mounted(_PATH_MOUNTED, path, MNTS_REAL)) {
|
||||
struct amd_entry *entry;
|
||||
debug(ap->logopt, "unmounting dir = %s", path);
|
||||
- if (umount_ent(ap, path)) {
|
||||
+ if (umount_ent(ap, path) &&
|
||||
+ is_mounted(_PATH_MOUNTED, path, MNTS_REAL)) {
|
||||
warn(ap->logopt, "could not umount dir %s", path);
|
||||
left++;
|
||||
goto done;
|
||||
diff --git a/lib/mounts.c b/lib/mounts.c
|
||||
index f635371..27ea744 100644
|
||||
--- a/lib/mounts.c
|
||||
+++ b/lib/mounts.c
|
||||
@@ -2165,7 +2165,8 @@ int umount_multi_triggers(struct autofs_point *ap, struct mapent *me, char *root
|
||||
*/
|
||||
if (is_mounted(_PATH_MOUNTED, root, MNTS_REAL)) {
|
||||
info(ap->logopt, "unmounting dir = %s", root);
|
||||
- if (umount_ent(ap, root)) {
|
||||
+ if (umount_ent(ap, root) &&
|
||||
+ is_mounted(_PATH_MOUNTED, root, MNTS_REAL)) {
|
||||
if (mount_multi_triggers(ap, me, root, strlen(root), "/") < 0)
|
||||
warn(ap->logopt,
|
||||
"failed to remount offset triggers");
|
||||
@@ -2266,7 +2267,8 @@ int clean_stale_multi_triggers(struct autofs_point *ap,
|
||||
*/
|
||||
if (oe->ioctlfd != -1 ||
|
||||
is_mounted(_PROC_MOUNTS, oe->key, MNTS_REAL)) {
|
||||
- if (umount_ent(ap, oe->key)) {
|
||||
+ if (umount_ent(ap, oe->key) &&
|
||||
+ is_mounted(_PROC_MOUNTS, oe->key, MNTS_REAL)) {
|
||||
debug(ap->logopt,
|
||||
"offset %s has active mount, invalidate",
|
||||
oe->key);
|
56
autofs-5.1.0-ignore-multiple-commas-in-options-strings.patch
Normal file
56
autofs-5.1.0-ignore-multiple-commas-in-options-strings.patch
Normal file
@ -0,0 +1,56 @@
|
||||
autofs-5.1.0 - ignore multiple commas in options strings
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
When parsing options strings (such as opts, addopts or remopts) the parser
|
||||
would object to multiple occurrances of the comma character. But this is
|
||||
probably not a significant problem and the parser should just ignore them.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
modules/amd_parse.y | 4 ++++
|
||||
modules/amd_tok.l | 4 ++--
|
||||
3 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index fe9b2f9..2b7d55a 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -28,6 +28,7 @@
|
||||
- fix memory leak in get_defaults_entry().
|
||||
- fix out of order clearing of options buffer.
|
||||
- fix reset amd lexer scan buffer.
|
||||
+- ignore multiple commas in options strings.
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/modules/amd_parse.y b/modules/amd_parse.y
|
||||
index a7f38f8..ce8623d 100644
|
||||
--- a/modules/amd_parse.y
|
||||
+++ b/modules/amd_parse.y
|
||||
@@ -465,6 +465,10 @@ options: OPTION
|
||||
{
|
||||
prepend_opt(opts, $1);
|
||||
}
|
||||
+ | OPTION COMMA
|
||||
+ {
|
||||
+ prepend_opt(opts, $1);
|
||||
+ }
|
||||
;
|
||||
|
||||
%%
|
||||
diff --git a/modules/amd_tok.l b/modules/amd_tok.l
|
||||
index 36bce49..03e716f 100644
|
||||
--- a/modules/amd_tok.l
|
||||
+++ b/modules/amd_tok.l
|
||||
@@ -284,9 +284,9 @@ CUTSEP (\|\||\/)
|
||||
return SPACE;
|
||||
}
|
||||
|
||||
- ":=" { return OPTION_ASSIGN; }
|
||||
+ (:=)(,+)? { return OPTION_ASSIGN; }
|
||||
|
||||
- "," { return COMMA; }
|
||||
+ ,+ { return COMMA; }
|
||||
|
||||
{OPTS} {
|
||||
amd_copy_buffer();
|
116
autofs-5.1.0-update-man-page-autofs-8-for-systemd.patch
Normal file
116
autofs-5.1.0-update-man-page-autofs-8-for-systemd.patch
Normal file
@ -0,0 +1,116 @@
|
||||
autofs-5.1.0 - update man page autofs(8) for systemd
|
||||
|
||||
From: Ian Kent <ikent@redhat.com>
|
||||
|
||||
Update the autofs(8) man page to account for systems using systemd.
|
||||
---
|
||||
CHANGELOG | 1 +
|
||||
man/autofs.8.in | 51 +++++++++++++++++++++++++++++++++++++--------------
|
||||
2 files changed, 38 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG b/CHANGELOG
|
||||
index f7b2ec1..b0dce1e 100644
|
||||
--- a/CHANGELOG
|
||||
+++ b/CHANGELOG
|
||||
@@ -32,6 +32,7 @@
|
||||
- fix typo in flagdir configure option.
|
||||
- clarify multiple mounts description.
|
||||
- gaurd against incorrect umount return.
|
||||
+- update man page autofs(8) for systemd.
|
||||
|
||||
04/06/2014 autofs-5.1.0
|
||||
=======================
|
||||
diff --git a/man/autofs.8.in b/man/autofs.8.in
|
||||
index 7ab4242..dffbeac 100644
|
||||
--- a/man/autofs.8.in
|
||||
+++ b/man/autofs.8.in
|
||||
@@ -1,23 +1,30 @@
|
||||
.TH AUTOFS 8 "9 Sep 1997"
|
||||
.SH NAME
|
||||
-@@initdir@@/autofs \- Control Script for automounter
|
||||
+Service control for the automounter
|
||||
.SH SYNOPSIS
|
||||
+If a SysV init script system is being used:
|
||||
+.br
|
||||
.B @@initdir@@/autofs
|
||||
.I start|stop|restart|reload|status
|
||||
+.P
|
||||
+or if the systemd init system is being used:
|
||||
+.br
|
||||
+.B systemctl
|
||||
+.I start|stop|restart|reload|status
|
||||
+.B autofs.service
|
||||
.SH "DESCRIPTION"
|
||||
.B autofs
|
||||
controls the operation of the
|
||||
.BR automount (8)
|
||||
-daemons running on the Linux system. Usually
|
||||
+daemon(s) running on the Linux system. Usually
|
||||
.B autofs
|
||||
is invoked at system boot time with the
|
||||
.I start
|
||||
parameter and at shutdown time with the
|
||||
.I stop
|
||||
-parameter. The
|
||||
-.B autofs
|
||||
-script can also be manually invoked by the system administrator to shut
|
||||
-down, restart or reload the automounters.
|
||||
+parameter. Service control actions can also be manually invoked by
|
||||
+the system administrator to shut down, restart, reload or obtain
|
||||
+service status.
|
||||
.P
|
||||
.SH "OPERATION"
|
||||
.B autofs
|
||||
@@ -31,28 +38,44 @@ will mount and start a thread, with the appropriate parameters, to
|
||||
manage the mount point.
|
||||
.P
|
||||
.B @@initdir@@/autofs reload
|
||||
-will check the current auto.master map against running daemons. It will kill
|
||||
-those daemons whose entries have changed and then start daemons for new or
|
||||
-changed entries.
|
||||
+or
|
||||
+.B systemctl autofs.service reload
|
||||
+will check the current auto.master map against the current automount managed
|
||||
+mounts. It will terminate those daemons or threads (depending on
|
||||
+.B autofs
|
||||
+version) whose entries have been removed, re-read the automount maps for
|
||||
+entries that have changed and start new daemons or threads for entries
|
||||
+that have been added.
|
||||
.P
|
||||
-If a map is modified then the change will become effective immediately. If
|
||||
-the
|
||||
+If an indirect map is modified then the change will become effective immediately.
|
||||
+If an indirect map uses the
|
||||
+.B browse
|
||||
+option, the master map contains direct mount maps or the
|
||||
.I auto.master
|
||||
map is modified then the
|
||||
.B autofs
|
||||
-script must be rerun to activate the changes.
|
||||
+service control reload action must be rerun to activate the changes.
|
||||
.P
|
||||
.B @@initdir@@/autofs status
|
||||
+or
|
||||
+.B systemctl autofs.service status
|
||||
will display the status of,
|
||||
.BR automount (8)
|
||||
-,running or not.
|
||||
+,running or not. When using the systemd init system the status output includes
|
||||
+somewhat more information related to the service status.
|
||||
+.P
|
||||
+.B systemctl(1)
|
||||
+has more functions than the actions mentioned here, see
|
||||
+.B systemctl(1)
|
||||
+for more information.
|
||||
.SH "SEE ALSO"
|
||||
.BR automount (8),
|
||||
.BR autofs (5),
|
||||
.BR autofs.conf (5),
|
||||
.BR auto.master (5).
|
||||
.BR autofs_ldap_auth.conf (5)
|
||||
+.BR systemctl(1)
|
||||
.SH AUTHOR
|
||||
This manual page was written by Christoph Lameter <chris@waterf.org>,
|
||||
for the Debi GNU/Linux system. Edited by H. Peter Anvin
|
||||
-<hpa@transmeta.com>.
|
||||
+<hpa@transmeta.com> and Ian Kent <raven@themaw.net>.
|
42
autofs.spec
42
autofs.spec
@ -8,7 +8,7 @@
|
||||
Summary: A tool for automatically mounting and unmounting filesystems
|
||||
Name: autofs
|
||||
Version: 5.1.0
|
||||
Release: 6%{?dist}
|
||||
Release: 7%{?dist}
|
||||
Epoch: 1
|
||||
License: GPLv2+
|
||||
Group: System Environment/Daemons
|
||||
@ -34,6 +34,18 @@ Patch18: autofs-5.1.0-fix-some-out-of-order-evaluations-in-parse_amd_c.patch
|
||||
Patch19: autofs-5.1.0-fix-copy-and-paste-error-in-dup_defaults_entry.patch
|
||||
Patch20: autofs-5.1.0-fix-leak-in-parse_mount.patch
|
||||
Patch21: autofs-5.1.0-add-mutex-call-return-check-in-defaults_c.patch
|
||||
Patch22: autofs-5.1.0-force-disable-browse-mode-for-amd-format-maps.patch
|
||||
Patch23: autofs-5.1.0-fix-hosts-map-options-check-in-lookup_amd_instance.patch
|
||||
Patch24: autofs-5.1.0-fix-mem-leak-in-create_client.patch
|
||||
Patch25: autofs-5.1.0-fix-memory-leak-in-get_exports.patch
|
||||
Patch26: autofs-5.1.0-fix-memory-leak-in-get_defaults_entry.patch
|
||||
Patch27: autofs-5.1.0-fix-out-of-order-clearing-of-options-buffer.patch
|
||||
Patch28: autofs-5.1.0-fix-reset-amd-lexer-scan-buffer.patch
|
||||
Patch29: autofs-5.1.0-ignore-multiple-commas-in-options-strings.patch
|
||||
Patch30: autofs-5.1.0-fix-typo-in-flagdir-configure-option.patch
|
||||
Patch31: autofs-5.1.0-clarify-multiple-mounts-description.patch
|
||||
Patch32: autofs-5.1.0-gaurd-against-incorrect-umount-return.patch
|
||||
Patch33: autofs-5.1.0-update-man-page-autofs-8-for-systemd.patch
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
%if %{with_systemd}
|
||||
BuildRequires: systemd-units
|
||||
@ -41,7 +53,6 @@ BuildRequires: systemd-units
|
||||
BuildRequires: autoconf, hesiod-devel, openldap-devel, bison, flex, libxml2-devel, cyrus-sasl-devel, openssl-devel module-init-tools util-linux nfs-utils e2fsprogs libtirpc-devel
|
||||
BuildRequires: libsss_autofs
|
||||
Conflicts: cyrus-sasl-lib < 2.1.23-9
|
||||
Requires: kernel >= 2.6.17
|
||||
Requires: bash coreutils sed gawk textutils sh-utils grep module-init-tools /bin/ps
|
||||
%if %{with_systemd}
|
||||
Requires(post): systemd-sysv
|
||||
@ -112,6 +123,18 @@ echo %{version}-%{release} > .version
|
||||
%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
|
||||
|
||||
%build
|
||||
LDFLAGS=-Wl,-z,now
|
||||
@ -204,6 +227,21 @@ fi
|
||||
%dir /etc/auto.master.d
|
||||
|
||||
%changelog
|
||||
* Wed Oct 15 2014 Ian Kent <ikent@redhat.com> - 1:5.1.0-7
|
||||
- force disable browse mode for amd format maps.
|
||||
- fix hosts map options check in lookup_amd_instance().
|
||||
- fix memory leak in create_client().
|
||||
- fix memory leak in get_exports().
|
||||
- fix memory leak in get_defaults_entry().
|
||||
- fix out of order clearing of options buffer.
|
||||
- fix reset amd lexer scan buffer.
|
||||
- ignore multiple commas in options strings.
|
||||
- fix typo in flagdir configure option.
|
||||
- clarify multiple mounts description.
|
||||
- gaurd against incorrect umount return.
|
||||
- update man page autofs(8) for systemd.
|
||||
- remove ancient kernel Requires.
|
||||
|
||||
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:5.1.0-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user