Hello folks!
As background, please consult the following webrev:
http://cr.opensolaris.org/~danmcd/6777776/
You'll notice that for the actual bugfix, my taskq callback function checks
and verifies that the IP instance of the packet still exists. The taskq is
instantiated once for ESP, so I figured checking for IP Instances
disappearing (as we do with esp_kcf_callback() and its callers) is a good
idea.
Since I used the taskq, however, I looked at the other taskq callers, and the
only other callbacks are ipsecesp.c:inbound_task() (and its ipsecah
counterpart) and sadb_clear_buf_pkt(). Both of those are called after key
management (e.g. IKE) finish SADB_UPDATE or SADB_ADD entries respectively.
Is it theoretically possible for an instance to get nuked between taskq
submission and taskq callback execution? If so there's an additional bug
lurking where we must have the aforementioned taskq callbacks (and their
setup routines) record the netstack ID, ala. esp_kcf_callback() and the new
code introduced by my fix for 6777776.
Please pipe up on both the review and my question!
Thanks,
Dan
_______________________________________________
networking-discuss mailing list
[email protected]