This is a discussion on Re: mssclamp in 4.1 within the IPFilter forums, part of the System Security and Security Related category; This patch is for pfil and should resolve the panics. Darren Index: pfilstream.c ================================================== ================= RCS file: /devel/CVS/pfil/pfilstream....
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
This patch is for pfil and should resolve the panics.
Darren Index: pfilstream.c ================================================== ================= RCS file: /devel/CVS/pfil/pfilstream.c,v retrieving revision 1.56 diff -c -r1.56 pfilstream.c *** pfilstream.c 2004/01/17 12:05:48 1.56 --- pfilstream.c 2004/02/16 10:55:44 *************** *** 202,208 **** /* Function: pfilbind */ /* Returns: int - 0 == success, else error */ /* Parameters: q(I) - pointer to queue */ - /* Write Lock: pfil_rw */ /* */ /* Check to see if a queue (or the otherside of it) is missing a qif_t */ /* structure. If neither have one then allocate a new one, else copy the */ --- 202,207 ---- *************** *** 315,323 **** #ifdef SIOCGTUNPARAM case SIOCGTUNPARAM : - WRITE_ENTER(&pfil_rw); qif_attach(q); - RW_EXIT(&pfil_rw); break; #endif --- 314,320 ---- Index: SunOS/qif.c ================================================== ================= RCS file: /devel/CVS/pfil/SunOS/qif.c,v retrieving revision 1.43 diff -c -r1.43 qif.c *** qif.c 2004/01/15 11:24:01 1.43 --- qif.c 2004/02/16 10:57:40 *************** *** 263,269 **** /* Function: qif_attach */ /* Returns: int - 0 == success, -1 == error in attaching qif_t to q */ /* Parameters: rq(I) - pointer to STREAMS read queue */ - /* Write Lock: pfil_rw */ /* */ /* Attempt to bind a qif_t structure to a specific interface given the */ /* queue pointer. Assumes the queue already has a qif_t structure tagged */ --- 263,268 ---- *************** *** 277,282 **** --- 276,282 ---- qif_t *qif; ill_t *ill; + WRITE_ENTER(&pfil_rw); /* * Can we map the queue to a specific ill? If not, go no futher, we * are only interested in being associated with queues that we can *************** *** 288,293 **** --- 288,294 ---- cmn_err(CE_NOTE, "PFIL: cannot find interface for rq %p", (void *)rq); + RW_EXIT(&pfil_rw); return -1; } *************** *** 312,319 **** * all the information has been set with qf_bound finally set to 1 * after that. */ ! if (qif->qf_bound == 1) return 0; qif->qf_sap = ill->ill_sap; qif->qf_ppa = ill->ill_ppa; --- 313,322 ---- * all the information has been set with qf_bound finally set to 1 * after that. */ ! if (qif->qf_bound == 1) { ! RW_EXIT(&pfil_rw); return 0; + } qif->qf_sap = ill->ill_sap; qif->qf_ppa = ill->ill_ppa; *************** *** 325,330 **** --- 328,334 ---- qif->qf_ill = ill; qif->qf_bound = 1; qif_ipmp_syncslave(qif); + RW_EXIT(&pfil_rw); READ_ENTER(&pfh_sync.ph_lock); |
![]() |
| Thread Tools | |
| Display Modes | |
|
|