From 60a1bd4e432654a2ef7e27378161bf7c5cd3beeb Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Fri, 22 May 2026 14:35:55 +0200 Subject: [PATCH] ndisc: fix clean_addresses() overwriting previously accumulated changed flags clean_addresses() uses "=" instead of "|=" when setting the changed flags, which overwrites any flags set by previous cleanup functions (e.g. clean_gateways()). This can cause gateway change notifications to be lost when gateways and addresses expire at the same time. Fixes: 4c2035347ec5 ('ndisc: track expiry of Router Advertisements in milliseconds') --- src/core/ndisc/nm-ndisc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/ndisc/nm-ndisc.c b/src/core/ndisc/nm-ndisc.c index 00032446c3..9a0ede8af3 100644 --- a/src/core/ndisc/nm-ndisc.c +++ b/src/core/ndisc/nm-ndisc.c @@ -1562,7 +1562,7 @@ clean_addresses(NMNDisc *ndisc, gint64 now_msec, NMNDiscConfigMap *changed, gint } if (i != j) { - *changed = NM_NDISC_CONFIG_ADDRESSES; + *changed |= NM_NDISC_CONFIG_ADDRESSES; g_array_set_size(rdata->addresses, j); }