net: openvswitch: fix missing checks for nla_nest_start
nla_nest_start may fail and thus deserves a check. The fix returns -EMSGSIZE when it fails. Signed-off-by: Kangjie Lu <kjlu@umn.edu> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
6f19893b64
Коммит
0fff9bd47e
|
@ -464,6 +464,10 @@ static int queue_userspace_packet(struct datapath *dp, struct sk_buff *skb,
|
|||
|
||||
if (upcall_info->egress_tun_info) {
|
||||
nla = nla_nest_start(user_skb, OVS_PACKET_ATTR_EGRESS_TUN_KEY);
|
||||
if (!nla) {
|
||||
err = -EMSGSIZE;
|
||||
goto out;
|
||||
}
|
||||
err = ovs_nla_put_tunnel_info(user_skb,
|
||||
upcall_info->egress_tun_info);
|
||||
BUG_ON(err);
|
||||
|
@ -472,6 +476,10 @@ static int queue_userspace_packet(struct datapath *dp, struct sk_buff *skb,
|
|||
|
||||
if (upcall_info->actions_len) {
|
||||
nla = nla_nest_start(user_skb, OVS_PACKET_ATTR_ACTIONS);
|
||||
if (!nla) {
|
||||
err = -EMSGSIZE;
|
||||
goto out;
|
||||
}
|
||||
err = ovs_nla_put_actions(upcall_info->actions,
|
||||
upcall_info->actions_len,
|
||||
user_skb);
|
||||
|
|
Загрузка…
Ссылка в новой задаче