diff options
| -rw-r--r-- | net/bridge/br_multicast.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 19618f25b4c6..6980625537ca 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c | |||
| @@ -991,7 +991,7 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, | |||
| 991 | 991 | ||
| 992 | err = pskb_trim_rcsum(skb2, len); | 992 | err = pskb_trim_rcsum(skb2, len); |
| 993 | if (err) | 993 | if (err) |
| 994 | return err; | 994 | goto err_out; |
| 995 | } | 995 | } |
| 996 | 996 | ||
| 997 | len -= ip_hdrlen(skb2); | 997 | len -= ip_hdrlen(skb2); |
| @@ -1013,7 +1013,7 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, | |||
| 1013 | case CHECKSUM_NONE: | 1013 | case CHECKSUM_NONE: |
| 1014 | skb2->csum = 0; | 1014 | skb2->csum = 0; |
| 1015 | if (skb_checksum_complete(skb2)) | 1015 | if (skb_checksum_complete(skb2)) |
| 1016 | return -EINVAL; | 1016 | goto out; |
| 1017 | } | 1017 | } |
| 1018 | 1018 | ||
| 1019 | err = 0; | 1019 | err = 0; |
| @@ -1040,6 +1040,7 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, | |||
| 1040 | 1040 | ||
| 1041 | out: | 1041 | out: |
| 1042 | __skb_push(skb2, offset); | 1042 | __skb_push(skb2, offset); |
| 1043 | err_out: | ||
| 1043 | if (skb2 != skb) | 1044 | if (skb2 != skb) |
| 1044 | kfree_skb(skb2); | 1045 | kfree_skb(skb2); |
| 1045 | return err; | 1046 | return err; |
