summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/util_reg.c22
-rw-r--r--source3/param/loadparm.c5
2 files changed, 23 insertions, 4 deletions
diff --git a/source3/lib/util_reg.c b/source3/lib/util_reg.c
index ed9f0a6817..cf0564509b 100644
--- a/source3/lib/util_reg.c
+++ b/source3/lib/util_reg.c
@@ -117,3 +117,25 @@ void normalize_dbkey(char *key)
string_sub(key, "\\", "/", len+1);
strupper_m(key);
}
+
+/*
+ * check whether a given value name is forbidden in registry (smbconf)
+ */
+BOOL registry_smbconf_valname_forbidden(const char *valname)
+{
+ /* hard code the list of forbidden names here for now */
+ const char *forbidden_valnames[] = {
+ "include",
+ "lock directory",
+ "lock dir",
+ NULL
+ };
+ const char **forbidden = NULL;
+
+ for (forbidden = forbidden_valnames; *forbidden != NULL; forbidden++) {
+ if (strwicmp(valname, *forbidden) == 0) {
+ return True;
+ }
+ }
+ return False;
+}
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index f654dff37f..c43a032560 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -3165,10 +3165,7 @@ static BOOL process_registry_globals(BOOL (*pfunc)(const char *, const char *))
&type,
&size,
&data_p);
- if ((strwicmp(valname,"include") == 0) ||
- (strwicmp(valname, "lock directory") == 0) ||
- (strwicmp(valname, "lock dir") == 0))
- {
+ if (registry_smbconf_valname_forbidden(valname)) {
DEBUG(10, ("process_registry_globals: Ignoring "
"parameter '%s' in registry.\n", valname));
continue;