diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2012-05-25 13:42:45 -0600 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2012-08-14 21:55:28 -0700 |
commit | af4c6641f5ad445fe6d0832da42406dbd9a37ce4 (patch) | |
tree | d1ef8c8fafb5cde0f55b7efd174c3d2032a58180 /net/sched/cls_flow.c | |
parent | 9eea9515cb5f3a4416511ef54b1cc98ca04869a1 (diff) | |
download | linux-af4c6641f5ad445fe6d0832da42406dbd9a37ce4.tar.gz linux-af4c6641f5ad445fe6d0832da42406dbd9a37ce4.tar.bz2 linux-af4c6641f5ad445fe6d0832da42406dbd9a37ce4.zip |
net sched: Pass the skb into change so it can access NETLINK_CB
cls_flow.c plays with uids and gids. Unless I misread that
code it is possible for classifiers to depend on the specific uid and
gid values. Therefore I need to know the user namespace of the
netlink socket that is installing the packet classifiers. Pass
in the rtnetlink skb so I can access the NETLINK_CB of the passed
packet. In particular I want access to sk_user_ns(NETLINK_CB(in_skb).ssk).
Pass in not the user namespace but the incomming rtnetlink skb into
the the classifier change routines as that is generally the more useful
parameter.
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'net/sched/cls_flow.c')
-rw-r--r-- | net/sched/cls_flow.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sched/cls_flow.c b/net/sched/cls_flow.c index ccd08c8dc6a7..ae854f3434b0 100644 --- a/net/sched/cls_flow.c +++ b/net/sched/cls_flow.c @@ -347,7 +347,8 @@ static const struct nla_policy flow_policy[TCA_FLOW_MAX + 1] = { [TCA_FLOW_PERTURB] = { .type = NLA_U32 }, }; -static int flow_change(struct tcf_proto *tp, unsigned long base, +static int flow_change(struct sk_buff *in_skb, + struct tcf_proto *tp, unsigned long base, u32 handle, struct nlattr **tca, unsigned long *arg) { |