about summary refs log tree commit diff
path: root/src/core/nm-policy.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2026-07-03 19:53:23 +0200
committerMichael Biebl <biebl@debian.org>2026-07-03 19:53:23 +0200
commitaa308069bebf2d5a3200728caa69a76137c03d8b (patch)
treec0ba2281e801c4720a0d8a5e5ee943688234f088 /src/core/nm-policy.c
parent0a4b2c29da4ccf259bbcea3298d15abebb94348f (diff)
parent537bfce2bda471c92caabd388589230200891509 (diff)
Update upstream source from tag 'upstream/1.58_rc1'
Update to upstream version '1.58~rc1'
with Debian dir 451489c9234e2b6b7c2f41ca6670287ea3ac3efd
Diffstat (limited to 'src/core/nm-policy.c')
-rw-r--r--src/core/nm-policy.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/core/nm-policy.c b/src/core/nm-policy.c
index f7be1a9f..48c004bf 100644
--- a/src/core/nm-policy.c
+++ b/src/core/nm-policy.c
@@ -204,10 +204,10 @@ expire_ip6_delegations(NMPolicy *self)
     IP6PrefixDelegation *delegation = NULL;
     guint                i;
 
-    for (i = 0; i < priv->ip6_prefix_delegations->len; i++) {
-        delegation = &nm_g_array_index(priv->ip6_prefix_delegations, IP6PrefixDelegation, i);
+    for (i = priv->ip6_prefix_delegations->len; i > 0; i--) {
+        delegation = &nm_g_array_index(priv->ip6_prefix_delegations, IP6PrefixDelegation, i - 1);
         if (delegation->prefix.timestamp + delegation->prefix.lifetime < now)
-            g_array_remove_index_fast(priv->ip6_prefix_delegations, i);
+            g_array_remove_index(priv->ip6_prefix_delegations, i - 1);
     }
 }
 
@@ -253,7 +253,7 @@ ip6_subnet_from_delegation(IP6PrefixDelegation *delegation, NMDevice *device)
     }
 
     /* Check for out-of-prefixes condition */
-    num_subnets = 1 << (64 - delegation->prefix.plen);
+    num_subnets = (guint64) 1 << (64 - delegation->prefix.plen);
     if (nm_g_hash_table_size(delegation->map_subnet_id_to_ifindex) >= num_subnets) {
         _LOGD(LOGD_IP6,
               "ipv6-pd: no more prefixes in %s/%u",
@@ -378,10 +378,10 @@ ip6_remove_device_prefix_delegations(NMPolicy *self, NMDevice *device)
     IP6PrefixDelegation *delegation = NULL;
     guint                i;
 
-    for (i = 0; i < priv->ip6_prefix_delegations->len; i++) {
-        delegation = &nm_g_array_index(priv->ip6_prefix_delegations, IP6PrefixDelegation, i);
+    for (i = priv->ip6_prefix_delegations->len; i > 0; i--) {
+        delegation = &nm_g_array_index(priv->ip6_prefix_delegations, IP6PrefixDelegation, i - 1);
         if (delegation->device == device)
-            g_array_remove_index_fast(priv->ip6_prefix_delegations, i);
+            g_array_remove_index(priv->ip6_prefix_delegations, i - 1);
     }
 }