: Fix missing unlock in ipt action error path
Subsystems (2)
PATCH 12/17 : Fix missing unlock in ipt action error path
Fix missing unlock in ipt action error path.
# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/12/30 03:02:56+01:00 [email protected]
# [PKT_SCHED]: Fix missing unlock in ipt action error path
#
# Signed-off-by: Patrick McHardy <[email protected]>
#
# net/sched/ipt.c # 2004/12/30 02:57:03+01:00 [email protected] +6 -4 # [PKT_SCHED]: Fix missing unlock in ipt action error path # # Signed-off-by: Patrick McHardy <[email protected]> # diff -Nru a/net/sched/ipt.c b/net/sched/ipt.c --- a/net/sched/ipt.c 2004-12-30 04:01:46 +01:00 +++ b/net/sched/ipt.c 2004-12-30 04:01:46 +01:00 @@ -248,9 +248,11 @@ p->bstats.bytes += skb->len; p->bstats.packets++;
- if (skb_cloned(skb) ) {
- if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
- return -1;
+ if (skb_cloned(skb)) {
+ if (unlikely(pskb_expand_head(skb, 0, 0, GFP_ATOMIC))) {
+ result = -1;
+ goto out_unlock;
+ }
}
/* yes, we have to worry about both in and out dev
worry later - danger - this API seems to have changed
@@ -275,9 +277,9 @@
result = TC_POLICE_OK;
break;
}
+out_unlock:
spin_unlock(&p->lock);
return result;
-
}
static int