The attached patch fixes an oops in inet_putpeer(). Please see the
changelog entry for details.
An alternative fix would be to check whether rt6_peer_ptr() returns
NULL before invoking inet_putpeer(), but properly initializing the
peer looks cleaner to me.
From: Patrick McHardy <redacted>
Date: Sat, 18 Aug 2012 17:32:31 +0200 (MEST)
The attached patch fixes an oops in inet_putpeer(). Please see the
changelog entry for details.
An alternative fix would be to check whether rt6_peer_ptr() returns
NULL before invoking inet_putpeer(), but properly initializing the
peer looks cleaner to me.
This is fine for now, applied, thanks Patrick.
There was a built-in assumption that xfrm_fill_dst() would run to
completion before we'd try to release these things, because there in
xfrm6_policy.c's xfrm6_fill_dst, we'd do the rt6_transfer_peer().
But that's obviously not the case if errors happen meanwhile.