r23657: Prevent setting of a global option in a share definition
[ira/wip.git] / source3 / utils / net_conf.c
index 5af2d6ccc53ea0678930ac3f54d0f3119ef27f78..1c61a25ee9ce0af434a932dd862e677bff5296f6 100644 (file)
@@ -178,12 +178,21 @@ static WERROR reg_setvalue_internal(struct registry_key *key,
        }
 
        if (registry_smbconf_valname_forbidden(valname)) {
-               d_fprintf(stderr, "Parameter '%s' not allowed in registry.\n", 
+               d_fprintf(stderr, "Parameter '%s' not allowed in registry.\n",
                          valname);
                werr = WERR_INVALID_PARAM;
                goto done;
        }
 
+       if (!strequal(key->key->name, GLOBAL_NAME) &&
+           lp_parameter_is_global(valname))
+       {
+               d_fprintf(stderr, "Global paramter '%s' not allowed in "
+                         "service definition.\n", valname);
+               werr = WERR_INVALID_PARAM;
+               goto done;
+       }
+
        werr = reg_setvalue(key, valname, &val);
        if (!W_ERROR_IS_OK(werr)) {
                d_fprintf(stderr,