On Thu, Oct 04, 2018 at 07:12:49PM +0200, Mauricio Vasquez B wrote:
> Restrict the use of peek, push and pop helpers only to queue and stack
> maps.
> 
> Signed-off-by: Mauricio Vasquez B <mauricio.vasq...@polito.it>
> ---
>  kernel/bpf/verifier.c |   14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
> index 489667f93061..8b1f1b348782 100644
> --- a/kernel/bpf/verifier.c
> +++ b/kernel/bpf/verifier.c
> @@ -2328,6 +2328,13 @@ static int check_map_func_compatibility(struct 
> bpf_verifier_env *env,
>               if (func_id != BPF_FUNC_sk_select_reuseport)
>                       goto error;
>               break;
> +     case BPF_MAP_TYPE_QUEUE:
> +     case BPF_MAP_TYPE_STACK:
> +             if (func_id != BPF_FUNC_map_peek_elem &&
> +                 func_id != BPF_FUNC_map_pop_elem &&
> +                 func_id != BPF_FUNC_map_push_elem)
> +                     goto error;

why this is separate patch?
I think it should be part of previous patch.

> +             break;
>       default:
>               break;
>       }
> @@ -2384,6 +2391,13 @@ static int check_map_func_compatibility(struct 
> bpf_verifier_env *env,
>               if (map->map_type != BPF_MAP_TYPE_REUSEPORT_SOCKARRAY)
>                       goto error;
>               break;
> +     case BPF_FUNC_map_peek_elem:
> +     case BPF_FUNC_map_pop_elem:
> +     case BPF_FUNC_map_push_elem:
> +             if (map->map_type != BPF_MAP_TYPE_QUEUE &&
> +                 map->map_type != BPF_MAP_TYPE_STACK)
> +                     goto error;
> +             break;
>       default:
>               break;
>       }
> 

Reply via email to