On 10/12/2018 08:54 PM, Yonghong Song wrote:
[...]
> +static bool btf_name_valid_identifier(const struct btf *btf, u32 offset)
> +{
> +     /* offset must be valid */
> +     const char *src = &btf->strings[offset];
> +
> +     if (!isalpha(*src) && *src != '_')
> +             return false;
> +
> +     src++;
> +     while (*src) {
> +             if (!isalnum(*src) && *src != '_')
> +                     return false;
> +             src++;
> +     }
> +
> +     return true;
> +}

Should there be an upper name length limit like KSYM_NAME_LEN? (Is it implied
by the kvmalloc() limit?)

>  static const char *btf_name_by_offset(const struct btf *btf, u32 offset)
>  {
>       if (!offset)
> @@ -747,7 +782,9 @@ static bool env_type_is_resolve_sink(const struct 
> btf_verifier_env *env,
>               /* int, enum or void is a sink */
>               return !btf_type_needs_resolve(next_type);
>       case RESOLVE_PTR:
> -             /* int, enum, void, struct or array is a sink for ptr */
> +             /* int, enum, void, struct, array or func_ptoto is a sink
> +              * for ptr
> +              */
>               return !btf_type_is_modifier(next_type) &&
>                       !btf_type_is_ptr(next_type);
>       case RESOLVE_STRUCT_OR_ARRAY:

Reply via email to