deleting netPools created through netBufLib

deleting netPools created through netBufLib

Post by Ron » Thu, 02 May 2002 00:52:41



I have come across what appears to be a hole in using netPools. In my
application, a previously initialized netPool is being deleted while
resources (MBLKS/CLBLKS/clusters) being managed by this pool are "in
use". netBufLib happily cleans up all the free resources in the pool
and then wipes out (zeroes) the netPool structure. Any subsequent
attempt to free the "in use" resources may result in a system crash
since the netPool associated with the freed resource is now invalid.
It would seem that the netBufLib routines neither detect nor guard
against such action. Does anyone know of any mechanism to resolve
this? I searched WindSurf for SPRs relating to this but came up
empty...
 
 
 

deleting netPools created through netBufLib

Post by Demrala Ro » Thu, 02 May 2002 18:28:09



> I have come across what appears to be a hole in using netPools. In my
> application, a previously initialized netPool is being deleted while
> resources (MBLKS/CLBLKS/clusters) being managed by this pool are "in
> use". netBufLib happily cleans up all the free resources in the pool
> and then wipes out (zeroes) the netPool structure. Any subsequent
> attempt to free the "in use" resources may result in a system crash
> since the netPool associated with the freed resource is now invalid.
> It would seem that the netBufLib routines neither detect nor guard
> against such action. Does anyone know of any mechanism to resolve
> this? I searched WindSurf for SPRs relating to this but came up
> empty...

I think the solution is don't free resources that are in use.
Since you discuss netpool, I think you must be trying to unload a
driver which is not shut down. There won't be an SPR for this.
When pruning a tree, would you cut off the limb you stand upon?

DR