[PATCH] [2.4] [2.5] Fix PPPoATM crash on disconnection (tasklet_disable; kfree(tasklet))

From: Luca Barbieri (ldb@ldb.ods.org)
Date: Sat May 11 2002 - 14:19:31 EST


PPPoATM uses tasklet_disable() on a tasklet inside a struct and then
frees the struct, leaving a pointer to the freed tasklet inside tasklet
lists.
This patch replaces tasklet_disable() with tasklet_kill().

This bug is present in both 2.4.18 and 2.5.15 (and the patch applies to
both).

--- linux-old/net/atm/pppoatm.c Wed Apr 10 14:37:34 2002
+++ linux/net/atm/pppoatm.c Fri May 10 21:56:28 2002
@@ -125,7 +125,7 @@
         pvcc = atmvcc_to_pvcc(atmvcc);
         atmvcc->push = pvcc->old_push;
         atmvcc->pop = pvcc->old_pop;
- tasklet_disable(&pvcc->wakeup_tasklet);
+ tasklet_kill(&pvcc->wakeup_tasklet);
         ppp_unregister_channel(&pvcc->chan);
         atmvcc->user_back = NULL;
         kfree(pvcc);



-
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 : Tue May 14 2002 - 12:00:16 EST