ofp-actions: Fix use-after-free in bundle action.
[cascardo/ovs.git] / datapath / flow_netlink.h
index 140bbe7..1c01755 100644 (file)
@@ -45,15 +45,16 @@ void ovs_match_init(struct sw_flow_match *match,
 
 int ovs_nla_put_key(const struct sw_flow_key *, const struct sw_flow_key *,
                    int attr, bool is_mask, struct sk_buff *);
-int ovs_nla_get_flow_metadata(const struct nlattr *, struct sw_flow_key *,
-                             bool log);
+int ovs_nla_get_flow_metadata(struct net *, const struct nlattr *,
+                             struct sw_flow_key *, bool log);
 
 int ovs_nla_put_identifier(const struct sw_flow *flow, struct sk_buff *skb);
 int ovs_nla_put_masked_key(const struct sw_flow *flow, struct sk_buff *skb);
 int ovs_nla_put_mask(const struct sw_flow *flow, struct sk_buff *skb);
 
-int ovs_nla_get_match(struct sw_flow_match *, const struct nlattr *key,
-                     const struct nlattr *mask, bool log);
+int ovs_nla_get_match(struct net *, struct sw_flow_match *,
+                     const struct nlattr *key, const struct nlattr *mask,
+                     bool log);
 int ovs_nla_put_egress_tunnel_key(struct sk_buff *skb,
                                  const struct ip_tunnel_info *egress_tun_info,
                                  const void *egress_tun_opts);
@@ -63,9 +64,11 @@ int ovs_nla_get_identifier(struct sw_flow_id *sfid, const struct nlattr *ufid,
                           const struct sw_flow_key *key, bool log);
 u32 ovs_nla_get_ufid_flags(const struct nlattr *attr);
 
-int ovs_nla_copy_actions(const struct nlattr *attr,
+int ovs_nla_copy_actions(struct net *net, const struct nlattr *attr,
                         const struct sw_flow_key *key,
                         struct sw_flow_actions **sfa, bool log);
+int ovs_nla_add_action(struct sw_flow_actions **sfa, int attrtype,
+                      void *data, int len, bool log);
 int ovs_nla_put_actions(const struct nlattr *attr,
                        int len, struct sk_buff *skb);