Thread (11 messages) 11 messages, 4 authors, 7d ago

Re: [PATCH net v4 3/4] ipv6: initialize temporary ifaddr before publication

flat view

From: Ido Schimmel <idosch@nvidia.com>
Date: 2026-10-15 14:32:44
Also in: lkml

On Thu, Oct 15, 2026 at 02:06:50PM +0900, Daehyeon Ko wrote:
ipv6_create_tempaddr() holds a reference to the public ifaddr, publishes
the new temporary address through ipv6_add_addr(), and only then stores
the reference and final timestamps.

addrconf_ifdown() can remove the temporary address before ifpub is
stored, leaking the public ifaddr reference. Publishing ifpub alone is
insufficient: manage_tempaddrs() can then find the object before cstamp
and tstamp are final, update its lifetimes, and have the constructor
overwrite its timestamp with an older value.

This follow-on was found by source review and was not separately
triggered at runtime.

Pass the public ifaddr and both timestamps in ifa6_config. Initialize all
three fields before adding the temporary address to either the hash or
per-device lists. On success the existing public-ifaddr reference
transfers to the temporary object. On error it remains owned and released
by ipv6_create_tempaddr().

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: <redacted>
Reported-by: Sashiko <netdev-bot+sashiko@kernel.org>
Closes: https://lore.kernel.org/r/179122559913.434549.12720841717630168470@kernel.org (local)
Link: https://lore.kernel.org/r/179161099665.434549.5858601179492551889@kernel.org (local)
Link: https://lore.kernel.org/r/20261007164548.GA1153540@shredder (local)
Link: https://lore.kernel.org/r/20261012145240.GA779501@shredder (local)
Suggested-by: Ido Schimmel <idosch@nvidia.com>
Assisted-by: LLM
Signed-off-by: Daehyeon Ko <redacted>
FTR, I suggested a smaller diff [1] which you decided to change without
a comment. Tagging this one because it fixes the problem and because I
want to put this frustrating submission behind me.

Reviewed-by: Ido Schimmel <idosch@nvidia.com>

[1] https://lore.kernel.org/netdev/20261007192032.GA1212364@shredder/ (local)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help