On 11/20/24 2:51 AM, Hangbin Liu wrote: > RFC8981 section 3.4 says that existing temporary addresses must have their > lifetimes adjusted so that no temporary addresses should ever remain "valid" > or "preferred" longer than the incoming SLAAC Prefix Information. This would > strongly imply in Linux's case that if the "mngtmpaddr" address is deleted or > un-flagged as such, its corresponding temporary addresses must be cleared out > right away. > > But now the temporary address is renewed even after ‘mngtmpaddr’ is removed > or becomes unmanaged as manage_tempaddrs() set temporary addresses > prefered/valid time to 0, and later in addrconf_verify_rtnl() all checkings > failed to remove the addresses. Fix this by deleting the temporary address > directly for these situations. > > Fixes: 778964f2fdf0 ("ipv6/addrconf: fix timing bug in tempaddr regen") > Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxx> > --- > net/ipv6/addrconf.c | 41 +++++++++++++++++++++++++++++------------ > 1 file changed, 29 insertions(+), 12 deletions(-) > Reviewed-by: David Ahern <dsahern@xxxxxxxxxx>