ir241_iriap_skb_leak.diff :
<Patch from Jan Kiszka>
o [CORRECT] Fix obvious skb leak in IrIAP state machines
diff -u -p linux/net/irda/iriap_event.d7.c linux/net/irda/iriap_event.c
--- linux/net/irda/iriap_event.d7.c Mon Dec 2 16:24:29 2002
+++ linux/net/irda/iriap_event.c Mon Dec 2 16:25:50 2002
@@ -251,22 +251,25 @@ static void state_s_call(struct iriap_cb
static void state_s_make_call(struct iriap_cb *self, IRIAP_EVENT event,
struct sk_buff *skb)
{
+ struct sk_buff *tx_skb;
+
ASSERT(self != NULL, return;);
switch (event) {
case IAP_CALL_REQUEST:
- skb = self->skb;
+ tx_skb = self->skb;
self->skb = NULL;
- irlmp_data_request(self->lsap, skb);
+ irlmp_data_request(self->lsap, tx_skb);
iriap_next_call_state(self, S_OUTSTANDING);
break;
default:
IRDA_DEBUG(0, "%s(), Unknown event %d\n", __FUNCTION__, event);
- if (skb)
- dev_kfree_skb(skb);
break;
}
+ /* Cleanup time ! */
+ if (skb)
+ dev_kfree_skb(skb);
}
/*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Mon Jun 23 2003 - 22:00:20 EST