CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2019/06/21 11:11:43
Modified files:
sys/net : if_spppsubr.c route.c route.h rtable.c rtable.h
rtsock.c
sys/netinet : ip_mroute.c
sys/netinet6 : ip6_mroute.c nd6.h nd6_rtr.c
Log message:
Prevent recursions by not deleting entries inside rtable_walk(9).
rtable_walk(9) now passes a routing entry back to the caller when
a non zero value is returned and if it asked for it.
This allows us to call rtdeletemsg()/rtrequest_delete() from the
caller without creating a recursion because of rtflushclone().
Multicast code hasn't been adapted and is still possibly creating
recursions. However multicast route entries aren't cloned so if
a recursion exists it isn't because of rtflushclone().
Fix stack exhaustion triggered by the use of "-msave-args".
Issue reported by D??niel L??vai on bugs@ confirmed by and ok bluhm@.