Updated Branches: refs/heads/cassandra-1.2 924492345 -> a58a95ddb
Validate SliceRange start and finish lengths patch by Ben Bromhead; reviewed by Aleksey Yeschenko for CASSANDRA-6521 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a58a95dd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a58a95dd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a58a95dd Branch: refs/heads/cassandra-1.2 Commit: a58a95ddbb438cf8a2980d71b5cdbc2e63642685 Parents: 9244923 Author: Aleksey Yeschenko <alek...@apache.org> Authored: Sun Dec 22 20:03:05 2013 +0300 Committer: Aleksey Yeschenko <alek...@apache.org> Committed: Sun Dec 22 20:03:05 2013 +0300 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../org/apache/cassandra/thrift/ThriftValidation.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a58a95dd/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 6f6c131..4eee4ee 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -4,6 +4,7 @@ * Don't resubmit counter mutation runnables internally (CASSANDRA-6427) * Don't drop local mutations without a trace (CASSANDRA-6510) * Don't allow null max_hint_window_in_ms (CASSANDRA-6419) + * Validate SliceRange start and finish lengths (CASSANDRA-6521) 1.2.13 http://git-wip-us.apache.org/repos/asf/cassandra/blob/a58a95dd/src/java/org/apache/cassandra/thrift/ThriftValidation.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/thrift/ThriftValidation.java b/src/java/org/apache/cassandra/thrift/ThriftValidation.java index 5882e27..442ea4e 100644 --- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java +++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java @@ -228,6 +228,15 @@ public class ThriftValidation public static void validateRange(CFMetaData metadata, ColumnParent column_parent, SliceRange range) throws org.apache.cassandra.exceptions.InvalidRequestException { + if (range.count < 0) + throw new org.apache.cassandra.exceptions.InvalidRequestException("get_slice requires non-negative count"); + + if (range.start.remaining() > IColumn.MAX_NAME_LENGTH) + throw new org.apache.cassandra.exceptions.InvalidRequestException("range start length cannot be larger than " + IColumn.MAX_NAME_LENGTH); + + if (range.finish.remaining() > IColumn.MAX_NAME_LENGTH) + throw new org.apache.cassandra.exceptions.InvalidRequestException("range finish length cannot be larger than " + IColumn.MAX_NAME_LENGTH); + AbstractType<?> comparator = metadata.getComparatorFor(column_parent.super_column); try { @@ -239,9 +248,6 @@ public class ThriftValidation throw new org.apache.cassandra.exceptions.InvalidRequestException(e.getMessage()); } - if (range.count < 0) - throw new org.apache.cassandra.exceptions.InvalidRequestException("get_slice requires non-negative count"); - Comparator<ByteBuffer> orderedComparator = range.isReversed() ? comparator.reverseComparator : comparator; if (range.start.remaining() > 0 && range.finish.remaining() > 0