return (True);
}
+
+/***************************************************************************
+ Check whether the given parameter name is valid.
+ Parametric options (names containing a colon) are considered valid.
+***************************************************************************/
+
+BOOL lp_parameter_valid(const char *pszParmName)
+{
+ return ((map_parameter(pszParmName) != -1) ||
+ (strchr(pszParmName, ':') != NULL));
+}
+
/***************************************************************************
Map a parameter's string representation to something we can use.
Returns False if the parameter string is not recognised, else TRUE.
else {
d_fprintf(stderr, "Only value types DWORD and SZ are"
"currently implemented for setting values.\n");
+ werr = WERR_INVALID_PARAM;
+ goto done;
+ }
+
+ if (!lp_parameter_valid(valname)) {
+ d_fprintf(stderr, "Invalid parameter '%s' given.\n", valname);
+ werr = WERR_INVALID_PARAM;
+ goto done;
+ }
+
+ if (registry_smbconf_valname_forbidden(valname)) {
+ d_fprintf(stderr, "Parameter '%s' not allowed in registry.\n",
+ valname);
+ werr = WERR_INVALID_PARAM;
goto done;
}