Updated Branches:
  refs/heads/cassandra-2.0 b5c9b498f -> 03f4c92d1

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-2.0
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

Reply via email to