In route detach we delete `rop_timeout' while `rop' is still linked to
authormvs <mvs@openbsd.org>
Sun, 16 May 2021 13:09:39 +0000 (13:09 +0000)
committermvs <mvs@openbsd.org>
Sun, 16 May 2021 13:09:39 +0000 (13:09 +0000)
commit36d33bfe8ba3ef412fedf321429113a3fab4053e
treec803400841bafa4250c32459f16ca4a515a0af4e
parentd2f1cbaea73cc2d27ffa38958f31c2ae70c5c4f8
In route detach we delete `rop_timeout' while `rop' is still linked to
`rtp_list' so it could be re-added by concurrent thread. Also
timeout_del(9) doesn't wait timeout proc to be finished and
timeout_del_barrier(9) should be used for that.

So use timeout_del_barrier(9) instead of timeout_del(9) and moved it
just after refcnt_finalize(9). This fixes potential use-after-free
issue in route_detach().

ok mpi@
sys/net/rtsock.c