diff options
-rw-r--r-- | source3/lib/util_reg.c | 22 | ||||
-rw-r--r-- | source3/param/loadparm.c | 5 |
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; |