You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2013/12/22 18:04:09 UTC

git commit: Validate SliceRange start and finish lengths

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 <al...@apache.org>
Authored: Sun Dec 22 20:03:05 2013 +0300
Committer: Aleksey Yeschenko <al...@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