File tree 2 files changed +11
-2
lines changed
staging/src/k8s.io/apiserver/pkg/cel/library
2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -231,8 +231,7 @@ func cidrContainsCIDR(arg ref.Val, other ref.Val) ref.Val {
231
231
return types .MaybeNoSuchOverloadErr (other )
232
232
}
233
233
234
- equalMasked := cidr .Prefix .Masked () == netip .PrefixFrom (containsCIDR .Prefix .Addr (), cidr .Prefix .Bits ())
235
- return types .Bool (equalMasked && cidr .Prefix .Bits () <= containsCIDR .Prefix .Bits ())
234
+ return types .Bool (cidr .Overlaps (containsCIDR .Prefix ) && cidr .Prefix .Bits () <= containsCIDR .Prefix .Bits ())
236
235
}
237
236
238
237
func prefixLength (arg ref.Val ) ref.Val {
Original file line number Diff line number Diff line change @@ -151,11 +151,21 @@ func TestCIDR(t *testing.T) {
151
151
expr : `cidr("192.168.0.0/24").containsCIDR(cidr("192.168.0.0/25"))` ,
152
152
expectResult : trueVal ,
153
153
},
154
+ {
155
+ name : "contains CIDR ipv4 (CIDR) (/32)" ,
156
+ expr : `cidr("192.168.0.0/24").containsCIDR(cidr("192.168.0.1/32"))` ,
157
+ expectResult : trueVal ,
158
+ },
154
159
{
155
160
name : "does not contain IP ipv4 (CIDR)" ,
156
161
expr : `cidr("192.168.0.0/24").containsCIDR(cidr("192.168.0.0/23"))` ,
157
162
expectResult : falseVal ,
158
163
},
164
+ {
165
+ name : "does not contain IP ipv4 (CIDR) (/32)" ,
166
+ expr : `cidr("192.168.0.0/24").containsCIDR(cidr("192.169.0.1/32"))` ,
167
+ expectResult : falseVal ,
168
+ },
159
169
{
160
170
name : "contains CIDR ipv4 (string)" ,
161
171
expr : `cidr("192.168.0.0/24").containsCIDR("192.168.0.0/25")` ,
You can’t perform that action at this time.
0 commit comments