Re: [PATCH] fix dst_entry leak in icmp_push_reply()
From: Ollie Wild
Date: Thu Aug 18 2005 - 13:46:14 EST
Ollie Wild wrote:
Patrick McHardy wrote:
Your patch doesn't fit your description, the else-condition you're
adding triggers when the queue is empty, so what is the point?
Since we're only calling ip_append_data() once here, the two
conditions are identical.
I should mention that this problem is not academic. We've run into it
in the field. If a lot of ICMP destination unreachable messages are
generated (by flooding a net_device with bad UDP packets for instance),
the net_device can no longer be unregistered.
That said, I appreciate that the if-else condition doesn't seem quite
right. The problem is, the icmp_push_reply() routine is implicitly
using the queue as a success indicator. I put the
ip_flush_pending_frames() call inside the else block because I wanted to
guarantee that one of ip_push_pending_frames() and
ip_flush_pending_frames() is always called. Both will do proper cleanup.
I'm open to suggestions if you think there's a cleaner way to implement
this.
Ollie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/