summaryrefslogtreecommitdiff
path: root/source4/scripting/libjs
diff options
context:
space:
mode:
Diffstat (limited to 'source4/scripting/libjs')
-rw-r--r--source4/scripting/libjs/provision.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js
index ef99dc43c5..33bfafac13 100644
--- a/source4/scripting/libjs/provision.js
+++ b/source4/scripting/libjs/provision.js
@@ -233,7 +233,9 @@ function provision(subobj, message, blank, paths)
subobj.REALM = strlower(subobj.REALM);
subobj.HOSTNAME = strlower(subobj.HOSTNAME);
subobj.DOMAIN = strupper(subobj.DOMAIN);
+ assert(valid_netbios_name(subobj.DOMAIN));
subobj.NETBIOSNAME = strupper(subobj.HOSTNAME);
+ assert(valid_netbios_name(subobj.NETBIOSNAME));
var rdns = split(",", subobj.BASEDN);
subobj.RDN_DC = substr(rdns[0], strlen("DC="));
@@ -431,5 +433,29 @@ member: %s
return enable_account(ldb, user_dn);
}
+// Check whether a name is valid as a NetBIOS name.
+// FIXME: There are probably more constraints here
+function valid_netbios_name(name)
+{
+ if (strlen(name) > 13) return false;
+ if (strstr(name, ".")) return false;
+ return true;
+}
+
+function provision_validate(subobj, message)
+{
+ if (!valid_netbios_name(subobj.DOMAIN)) {
+ message("Invalid NetBIOS name for domain\n");
+ return false;
+ }
+
+ if (!valid_netbios_name(subobj.NETBIOSNAME)) {
+ message("Invalid NetBIOS name for host\n");
+ return false;
+ }
+
+ return true;
+}
+
return 0;