[PATCH 2.4] Fix IrIAP skb leak

From: Jean Tourrilhes (jt@bougret.hpl.hp.com)
Date: Mon Jun 16 2003 - 21:08:33 EST


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