• Stanislav Fomichev's avatar
    flow_dissector: allow access only to a subset of __sk_buff fields · 2ee7fba0
    Stanislav Fomichev authored
    Use whitelist instead of a blacklist and allow only a small set of
    fields that might be relevant in the context of flow dissector:
      * data
      * data_end
      * flow_keys
    
    This is required for the eth_get_headlen case where we have only a
    chunk of data to dissect (i.e. trying to read the other skb fields
    doesn't make sense).
    
    Note, that it is a breaking API change! However, we've provided
    flow_keys->n_proto as a substitute for skb->protocol; and there is
    no need to manually handle skb->vlan_present. So even if we
    break somebody, the migration is trivial. Unfortunately, we can't
    support eth_get_headlen use-case without those breaking changes.
    Signed-off-by: default avatarStanislav Fomichev <sdf@google.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    2ee7fba0
filter.c 220 KB