projects
/
platform
/
kernel
/
linux-stable.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0ba8c9e
)
bridge br_multicast: Fix skb leakage in error path.
author
YOSHIFUJI Hideaki / 吉藤英明
<yoshfuji@linux-ipv6.org>
Mon, 15 Mar 2010 19:26:56 +0000
(19:26 +0000)
committer
David S. Miller
<davem@davemloft.net>
Tue, 16 Mar 2010 21:15:46 +0000
(14:15 -0700)
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_multicast.c
patch
|
blob
|
history
diff --git
a/net/bridge/br_multicast.c
b/net/bridge/br_multicast.c
index 19618f25b4c6e315b15859896afec93e1ad0ec5a..6980625537caa15e5f0a479eccca15c3341073a3 100644
(file)
--- 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,
err = pskb_trim_rcsum(skb2, len);
if (err)
-
return err
;
+
goto err_out
;
}
len -= ip_hdrlen(skb2);
@@
-1013,7
+1013,7
@@
static int br_multicast_ipv4_rcv(struct net_bridge *br,
case CHECKSUM_NONE:
skb2->csum = 0;
if (skb_checksum_complete(skb2))
-
return -EINVAL
;
+
goto out
;
}
err = 0;
@@
-1040,6
+1040,7
@@
static int br_multicast_ipv4_rcv(struct net_bridge *br,
out:
__skb_push(skb2, offset);
+err_out:
if (skb2 != skb)
kfree_skb(skb2);
return err;