use policy ids deduping policies during union

Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
This commit is contained in:
Dmitri Dolguikh
2026-07-09 12:22:29 +02:00
parent 9b9f396391
commit 5edc168ff1
@@ -288,16 +288,16 @@ func unionPolicies(policies []*types.Policy, resourcePolicies map[string][]*type
if len(resourcePolicies) == 0 { if len(resourcePolicies) == 0 {
return policies return policies
} }
seen := make(map[*types.Policy]struct{}, len(policies)) seen := make(map[string]struct{}, len(policies))
out := make([]*types.Policy, 0, len(policies)) out := make([]*types.Policy, 0, len(policies))
for _, p := range policies { for _, p := range policies {
if p == nil { if p == nil {
continue continue
} }
if _, ok := seen[p]; ok { if _, ok := seen[p.ID]; ok {
continue continue
} }
seen[p] = struct{}{} seen[p.ID] = struct{}{}
out = append(out, p) out = append(out, p)
} }
for _, list := range resourcePolicies { for _, list := range resourcePolicies {
@@ -305,10 +305,10 @@ func unionPolicies(policies []*types.Policy, resourcePolicies map[string][]*type
if p == nil { if p == nil {
continue continue
} }
if _, ok := seen[p]; ok { if _, ok := seen[p.ID]; ok {
continue continue
} }
seen[p] = struct{}{} seen[p.ID] = struct{}{}
out = append(out, p) out = append(out, p)
} }
} }