From 43efcffcc217f5e49ed15593bc3156c2b4db1c73 Mon Sep 17 00:00:00 2001 From: Colin Goodheart-Smithe Date: Tue, 4 Jul 2017 10:51:38 +0100 Subject: Adds check for negative search request size (#25397) * Adds check for negative search request size This change adds a check to `SearchSourceBuilder` to throw and exception if the size set on it is set to a negative value. Closes #22530 * fix error in reindex * update re-index tests * Addresses review comment * Fixed tests * Added random negative size test * Fixes test --- .../index/reindex/AbstractBulkByScrollRequestTestCase.java | 4 +++- .../elasticsearch/search/builder/SearchSourceBuilderTests.java | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'core/src/test') diff --git a/core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java b/core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java index debeab52d9..8a255d376a 100644 --- a/core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java +++ b/core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java @@ -42,7 +42,9 @@ public abstract class AbstractBulkByScrollRequestTestCase r < 0, ESTestCase::randomFloat)); - original.setSize(randomBoolean() ? AbstractBulkByScrollRequest.SIZE_ALL_MATCHES : between(0, Integer.MAX_VALUE)); + if (randomBoolean()) { + original.setSize(between(0, Integer.MAX_VALUE)); + } TaskId slicingTask = new TaskId(randomAlphaOfLength(5), randomLong()); SearchRequest sliceRequest = new SearchRequest(); diff --git a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java index d6091c3cdd..7f468a8b50 100644 --- a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java @@ -359,6 +359,15 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { assertEquals("[from] parameter cannot be negative", expected.getMessage()); } + public void testNegativeSizeErrors() { + int randomSize = randomIntBetween(-100000, -2); + IllegalArgumentException expected = expectThrows(IllegalArgumentException.class, + () -> new SearchSourceBuilder().size(randomSize)); + assertEquals("[size] parameter cannot be negative, found [" + randomSize + "]", expected.getMessage()); + expected = expectThrows(IllegalArgumentException.class, () -> new SearchSourceBuilder().size(-1)); + assertEquals("[size] parameter cannot be negative, found [-1]", expected.getMessage()); + } + private void assertIndicesBoostParseErrorMessage(String restContent, String expectedErrorMessage) throws IOException { try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { ParsingException e = expectThrows(ParsingException.class, () -> SearchSourceBuilder.fromXContent(parser)); -- cgit v1.2.3