Skip to contentSkip to conversation

: Fix missing unlock in ipt action error path

PATCH In review Patrick McHardy 1 participant 1 message Dec 30, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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