Thanks. I put in a modified patch, checking ifc->is_bridge, so that the bridge and port specific fields of struct ifdata can be put into a variant record at some point. commit 8172012df1d981ef1934ede430c4936eae50e5f7 Author: Srinivas Aji <Aji_Srinivas@xxxxxxx> Date: Thu Jul 3 22:45:03 2008 +0530 Fix crash when BPDU received on bridge if. We could receive non STP BPDU's on bridge interface, or even STP BPDUs if STP is off for the bridge. The crash is avoided by checking for bridge interface and not processing further in that case. Patch based on one from Solomon Peachy <solomon@xxxxxxxxxxxxxx> diff --git a/bridge_track.c b/bridge_track.c index e93c014..802db7a 100644 --- a/bridge_track.c +++ b/bridge_track.c @@ -447,6 +447,12 @@ void bridge_bpdu_rcv(int if_index, const unsigned char *dat if (!ifc) return; + /* We could get a STP BPDU from a bridge interface if STP is off, + or a non STP packet as well, e.g. GMRP, even when STP is on. + Don't process it, else we will crash at ifc->master->stp_up */ + if (ifc->is_bridge) + return; + TST(ifc->up,); if (!ifc->master->stp_up) return; _______________________________________________ Bridge mailing list Bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/bridge