From 9212153819ed87b29de488f104dd6bf462f75baf Mon Sep 17 00:00:00 2001 From: f1v3-dev Date: Thu, 18 Jun 2026 20:22:47 +0900 Subject: [PATCH] FIX: Correct limit validation for compValue --- .../collection/ElementMultiFlagsFilter.java | 10 +++++----- .../ElementMultiFlagsFilterTest.java | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 src/test/java/net/spy/memcached/collection/ElementMultiFlagsFilterTest.java diff --git a/src/main/java/net/spy/memcached/collection/ElementMultiFlagsFilter.java b/src/main/java/net/spy/memcached/collection/ElementMultiFlagsFilter.java index 8fe111dd6..d3eeace22 100644 --- a/src/main/java/net/spy/memcached/collection/ElementMultiFlagsFilter.java +++ b/src/main/java/net/spy/memcached/collection/ElementMultiFlagsFilter.java @@ -22,8 +22,8 @@ public class ElementMultiFlagsFilter extends ElementFlagFilter { - final static int MAX_EFLAGS = 100; - private ArrayList compValue = new ArrayList<>(); + private static final int MAX_COMP_VALUE_COUNT = 100; + private final ArrayList compValue = new ArrayList<>(); public ElementMultiFlagsFilter() { } @@ -61,10 +61,10 @@ public ElementMultiFlagsFilter addCompValue(byte[] compValue) { + MAX_EFLAG_LENGTH); } - if (this.compValue.size() > MAX_EFLAGS) { + if (this.compValue.size() >= MAX_COMP_VALUE_COUNT) { throw new IllegalArgumentException( - "Count of comparison values must be less than " - + MAX_EFLAGS); + "Count of comparison values must not exceed " + + MAX_COMP_VALUE_COUNT); } if (!this.compValue.isEmpty() diff --git a/src/test/java/net/spy/memcached/collection/ElementMultiFlagsFilterTest.java b/src/test/java/net/spy/memcached/collection/ElementMultiFlagsFilterTest.java new file mode 100644 index 000000000..355f6b16b --- /dev/null +++ b/src/test/java/net/spy/memcached/collection/ElementMultiFlagsFilterTest.java @@ -0,0 +1,19 @@ +package net.spy.memcached.collection; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +class ElementMultiFlagsFilterTest { + + @Test + void shouldRejectCompValueExceedingMaximumCount() { + ElementMultiFlagsFilter filter = new ElementMultiFlagsFilter(); + + for (int i = 0; i < 100; i++) { + filter.addCompValue(new byte[]{(byte) i}); + } + + assertThrows(IllegalArgumentException.class, () -> filter.addCompValue(new byte[]{0})); + } +}