/* Check sanity of parameter control fields and if a path is present check that it is terminated and contains at least one "/".  */
static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param)
/* Check sanity of parameter control fields and if a path is present check that it is terminated and contains at least one "/".  */
static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param)
{
	int err;
	err = check_dev_ioctl_version(cmd, param);
	if (err) {
		AUTOFS_WARN("invalid device control module version "
		     "supplied for cmd(0x%08x)", cmd);
		goto out;
	}
	if (param->size > sizeof(*param)) {
		err = invalid_str(param->path, param->size - sizeof(*param));
		if (err) {
			AUTOFS_WARN(
			  "path string terminator missing for cmd(0x%08x)",
			  cmd);
			goto out;
		}
		err = check_name(param->path);
		if (err) {
			AUTOFS_WARN("invalid path supplied for cmd(0x%08x)",
				    cmd);
			goto out;
		}
	}
	err = 0;
out:
	return err;
}