diff options
| author | Jesse Gross <jesse@nicira.com> | 2010-06-17 15:17:53 -0700 |
|---|---|---|
| committer | Jesse Gross <jesse@nicira.com> | 2010-06-18 11:38:10 -0700 |
| commit | b28c72ba7c992bcd2f5b65be0799a2d9422df21f (patch) | |
| tree | 0381771d32edcf02e5143139f29dc8f93475259f /datapath/vport-gre.c | |
| parent | a2377e444a0e0a3f3c6db2502c63cc9545572281 (diff) | |
| download | openvswitch-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.c | 4 |
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))) { |
