Skip to content

Commit 37fc651

Browse files
committed
policy: check array lengths before comparing integer lists
Signed-off-by: Jiaqi Gao <[email protected]>
1 parent c1bf4f5 commit 37fc651

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/policy/src/v2/policy.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,9 @@ impl PolicyProperty {
543543
relative_reference: Option<&[u32]>,
544544
) -> Result<bool, PolicyError> {
545545
let integer_list_op = |values: &[u32], reference: &[u32]| {
546+
if values.len() != reference.len() {
547+
return Ok(false);
548+
}
546549
match self.operation.as_str() {
547550
"array-equal" => {
548551
for (i, val) in values.iter().enumerate() {
@@ -566,12 +569,7 @@ impl PolicyProperty {
566569
};
567570

568571
match &self.reference {
569-
Reference::IntegerList(reference) => {
570-
if values.len() != reference.len() {
571-
return Ok(false);
572-
}
573-
integer_list_op(values, &reference)
574-
}
572+
Reference::IntegerList(reference) => integer_list_op(values, &reference),
575573
Reference::String(reference) => {
576574
if reference != "self" && reference != "init" {
577575
return Err(PolicyError::InvalidReference);

0 commit comments

Comments
 (0)