cvs commit: src/sys/netinet ip_dummynet.c
Gleb Smirnoff
glebius at FreeBSD.org
Fri Feb 3 03:38:21 PST 2006
glebius 2006-02-03 11:38:19 UTC
FreeBSD src repository
Modified files:
sys/netinet ip_dummynet.c
Log:
Dropping the lock in the transmit_event() is not safe, because we
store some pipe pointers on stack. If user reconfigures dummynet
in the interlock gap, we can work with freed pipes after relock.
To fix this, we decided not to send packets in transmit_event(),
but fill a queue. At the end of dummynet() and dummynet_io(),
after the lock is dropped, if there is something in the queue
we run dummynet_send() to process the queue.
In collaboration with: ru
Revision Changes Path
1.98 +115 -94 src/sys/netinet/ip_dummynet.c
More information about the cvs-src
mailing list