You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.0 KiB
75 lines
2.0 KiB
7 years ago
|
autofs-5.1.0-beta1 - allow empty value in macro selectors
|
||
|
|
||
|
From: Ian Kent <raven@themaw.net>
|
||
|
|
||
|
Some map selectors (this case is olny considering macro selectors) may
|
||
|
be given the comparison value left blank, possibly with the intent the
|
||
|
selector will not match so a mount will not be attempted, such as when
|
||
|
the delay option is also given.
|
||
|
|
||
|
autofs doesn't implement the delay option but it shouldn't fail to parse
|
||
|
these locations so that a valid locations in the list can be tried.
|
||
|
---
|
||
|
CHANGELOG | 1 +
|
||
|
modules/amd_parse.y | 14 ++++++++++++++
|
||
|
modules/parse_amd.c | 9 +++++++--
|
||
|
3 files changed, 22 insertions(+), 2 deletions(-)
|
||
|
|
||
|
--- autofs-5.0.7.orig/CHANGELOG
|
||
|
+++ autofs-5.0.7/CHANGELOG
|
||
|
@@ -125,6 +125,7 @@
|
||
|
- fix multi entry ldap option handling.
|
||
|
- cleanup options in amd_parse.c
|
||
|
- allow empty value for some map options.
|
||
|
+- allow empty value in macro selectors.
|
||
|
|
||
|
25/07/2012 autofs-5.0.7
|
||
|
=======================
|
||
|
--- autofs-5.0.7.orig/modules/amd_parse.y
|
||
|
+++ autofs-5.0.7/modules/amd_parse.y
|
||
|
@@ -200,12 +200,26 @@ selection: SELECTOR IS_EQUAL SELECTOR_VA
|
||
|
YYABORT;
|
||
|
}
|
||
|
}
|
||
|
+ | SELECTOR IS_EQUAL
|
||
|
+ {
|
||
|
+ if (!make_selector($1, "", NULL, SEL_COMP_EQUAL)) {
|
||
|
+ amd_notify($1);
|
||
|
+ YYABORT;
|
||
|
+ }
|
||
|
+ }
|
||
|
| SELECTOR NOT_EQUAL SELECTOR_VALUE
|
||
|
{
|
||
|
if (!make_selector($1, $3, NULL, SEL_COMP_NOTEQUAL)) {
|
||
|
amd_notify($1);
|
||
|
YYABORT;
|
||
|
}
|
||
|
+ }
|
||
|
+ | SELECTOR NOT_EQUAL
|
||
|
+ {
|
||
|
+ if (!make_selector($1, "", NULL, SEL_COMP_EQUAL)) {
|
||
|
+ amd_notify($1);
|
||
|
+ YYABORT;
|
||
|
+ }
|
||
|
}
|
||
|
| SELECTOR LBRACKET SEL_ARG_VALUE RBRACKET
|
||
|
{
|
||
|
--- autofs-5.0.7.orig/modules/parse_amd.c
|
||
|
+++ autofs-5.0.7/modules/parse_amd.c
|
||
|
@@ -350,8 +350,13 @@ static int eval_selector(unsigned int lo
|
||
|
break;
|
||
|
|
||
|
case SEL_FLAG_NUM:
|
||
|
- res = atoi(v->val);
|
||
|
- val = atoi(s->comp.value);
|
||
|
+ if (!*s->comp.value) {
|
||
|
+ res = 1;
|
||
|
+ val = 0;
|
||
|
+ } else {
|
||
|
+ res = atoi(v->val);
|
||
|
+ val = atoi(s->comp.value);
|
||
|
+ }
|
||
|
if (s->compare & SEL_COMP_EQUAL && res == val) {
|
||
|
debug(logopt, MODPREFIX
|
||
|
"matched selector %s(%s) equal to %s",
|