On Fri, 18 Oct 2019 18:07:26 +0200
Jiri Pirko <j...@resnulli.us> wrote:

> +static bool devlink_param_valid_name(const char *name)
> +{
> +     int len = strlen(name);
> +     int i;
> +
> +     /* Name can contain lowercase characters or digits.
> +      * Underscores are also allowed, but not at the beginning
> +      * or end of the name and not more than one in a row.
> +      */
> +
> +     for (i = 0; i < len; i++) {
> +             if (islower(name[i]) || isdigit(name[i]))
> +                     continue;
> +             if (name[i] != '_')
> +                     return false;
> +             if (i == 0 || i + 1 == len)
> +                     return false;
> +             if (name[i - 1] == '_')
> +                     return false;
> +     }
> +     return true;
> +}

You might want to also impose a maximum length on name,
and not allow slash in name (if you ever plan to use sysfs).

Reply via email to