autofs/autofs-5.1.1-fix-config-old-name-lookup.patch

59 lines
1.7 KiB
Diff

autofs-5.1.1 - fix config old name lookup
From: Ian Kent <raven@themaw.net>
There are three cases needed to handle configuration name lookup.
First there's the configuration key name, the name match is case
insensitive so the recent case change isn't a seperate case.
But the much older configuration key names that began with "DEFAULT_"
need special handling.
There are two cases that need to be covered:
1) an old name is given but a new name needs to be located.
2) a new name is given but an old name needs to be located.
Only 1) is currently covered, so fix that in conf_lookup().
Signed-off-by: Ian Kent <raven@themaw.net>
---
CHANGELOG | 1 +
lib/defaults.c | 11 +++++++++++
2 files changed, 12 insertions(+)
diff --git a/CHANGELOG b/CHANGELOG
index 3bd7145..ebd66d8 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -11,6 +11,7 @@
- make find_server() return a status.
- fix return handling of do_reconnect() in ldap module.
- fix rwlock unlock crash.
+- fix config old name lookup.
21/04/2015 autofs-5.1.1
=======================
diff --git a/lib/defaults.c b/lib/defaults.c
index 5711e65..74fafc5 100644
--- a/lib/defaults.c
+++ b/lib/defaults.c
@@ -728,6 +728,17 @@ static struct conf_option *conf_lookup(const char *section, const char *key)
*/
if (strlen(key) > 8 && !strncasecmp("DEFAULT_", key, 8))
co = conf_lookup_key(section, key + 8);
+ else {
+ /* A new key name has been given but the value
+ * we seek is stored under an old key name (which
+ * includes the "DEFAULT_" prefix or doesn't exist.
+ */
+ char old_key[PATH_MAX + 1];
+
+ strcpy(old_key, "DEFAULT_");
+ strcat(old_key, key);
+ co = conf_lookup_key(section, old_key);
+ }
}
return co;