From 7ece1381b718811158756d21f62e128d345560bd Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Fri, 28 Aug 2026 00:24:10 +0300 Subject: [PATCH] Handle zero and negative SequenceSet min/max counts --- lib/net/imap/sequence_set.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/net/imap/sequence_set.rb b/lib/net/imap/sequence_set.rb index a5dabfc70..d7cd5e868 100644 --- a/lib/net/imap/sequence_set.rb +++ b/lib/net/imap/sequence_set.rb @@ -788,6 +788,9 @@ def disjoint?(other) # Related: #min, #minmax, #slice def max(count = nil, star: :*) if count + count = Integer(count.to_int) + raise ArgumentError, 'negative count' if count < 0 + return remain_frozen_empty if count == 0 if cardinality <= count frozen? ? self : dup else @@ -812,6 +815,8 @@ def max(count = nil, star: :*) # Related: #max, #minmax, #slice def min(count = nil, star: :*) if count + count = Integer(count.to_int) + raise ArgumentError, 'negative count' if count < 0 slice(0...count) || remain_frozen_empty elsif (val = min_num) val != STAR_INT ? val : star