diff mbox series

[ovs-dev,4/5] datapath: fix missing checks for nla_nest_start

Message ID 1553700739-11387-5-git-send-email-gvrose8192@gmail.com
State Accepted
Headers show
Series Linux datapath upstream fixes | expand

Commit Message

Gregory Rose March 27, 2019, 3:32 p.m. UTC
From: Kangjie Lu <kjlu@umn.edu>

Upstream commit:
    commit 0fff9bd47e1341b5c4db862cc39fc68ce45f165d
    Author: Kangjie Lu <kjlu@umn.edu>
    Date:   Fri Mar 15 01:11:22 2019 -0500

    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>

Cc: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: Greg Rose <gvrose8192@gmail.com>
---
 datapath/datapath.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

0-day Robot March 27, 2019, 4:12 p.m. UTC | #1
Bleep bloop.  Greetings Gregory Rose, I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


checkpatch:
ERROR: Author Kangjie Lu <kjlu@umn.edu> needs to sign off.
WARNING: Unexpected sign-offs from developers who are not authors or co-authors or committers: Greg Rose <gvrose8192@gmail.com>
Lines checked: 54, Warnings: 1, Errors: 1


Please check this out.  If you feel there has been an error, please email aconole@bytheb.org

Thanks,
0-day Robot
diff mbox series

Patch

diff --git a/datapath/datapath.c b/datapath/datapath.c
index 1340d6b..94e4f6f 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -476,6 +476,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);
@@ -484,6 +488,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);