dlil_output_list and interface filters
site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com User-agent: Thunderbird 1.5.0.4 (Windows/20060516) Thanks, Anton _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... I've been trying to nail down a mysterious kernel panic that occurs when our KPI interface filter is enabled and stumbled across a possible reason for it: in dlil_output_list after a call to filt_output, a check for EJUSTRETURN leads to what seems to be an erroneous "continue", which skips to the next interface filter instead of bailing out. So basically any packet consumed by an interface filter still gets passed to if_output and freed, which leads to a nasty surprise for an unsuspecting filter still referencing the freed mbuf. Could someone do a sanity check on this and if it's indeed a bug, I'll file a radar. Also, I would be grateful if someone could explain why a failure to process a single packet from a list should cause freeing of the whole list. This email sent to site_archiver@lists.apple.com
participants (1)
-
Anton Kuzmin