summaryrefslogtreecommitdiff
path: root/datapath/vport-gre.c
diff options
context:
space:
mode:
authorJesse Gross <jesse@nicira.com>2010-06-17 15:17:53 -0700
committerJesse Gross <jesse@nicira.com>2010-06-18 11:38:10 -0700
commitb28c72ba7c992bcd2f5b65be0799a2d9422df21f (patch)
tree0381771d32edcf02e5143139f29dc8f93475259f /datapath/vport-gre.c
parenta2377e444a0e0a3f3c6db2502c63cc9545572281 (diff)
downloadopenvswitch-b28c72ba7c992bcd2f5b65be0799a2d9422df21f.tar.gz
datapath: Check vswitch_skb_checksum_setup() return code.
If vswitch_skb_checksum_setup() returns an error, the checksum pointers probably haven't been set correctly which could cause a crash later. We should give up immediately on error.
Diffstat (limited to 'datapath/vport-gre.c')
-rw-r--r--datapath/vport-gre.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c
index 98e0abc3b..c71cc34d9 100644
--- a/datapath/vport-gre.c
+++ b/datapath/vport-gre.c
@@ -1131,7 +1131,9 @@ gre_send(struct vport *vport, struct sk_buff *skb)
}
forward_ip_summed(skb);
- vswitch_skb_checksum_setup(skb);
+
+ if (unlikely(vswitch_skb_checksum_setup(skb)))
+ goto error_free;
skb = handle_gso(skb);
if (unlikely(IS_ERR(skb))) {