You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2013/11/28 09:08:54 UTC

git commit: Throw IRE if a prepared query has more markers than supported

Updated Branches:
  refs/heads/cassandra-1.2 4bdd7f8f8 -> a322b645e


Throw IRE if a prepared query has more markers than supported

patch by lyubent; reviewed by slebresne for CASSANDRA-5598


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a322b645
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a322b645
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a322b645

Branch: refs/heads/cassandra-1.2
Commit: a322b645e6725fae4b4b765ff1b6e6375efe24d5
Parents: 4bdd7f8
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Nov 28 09:07:45 2013 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Nov 28 09:07:45 2013 +0100

----------------------------------------------------------------------
 CHANGES.txt                                            | 1 +
 src/java/org/apache/cassandra/cql3/QueryProcessor.java | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a322b645/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 0c7bb29..f84ffec 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -5,6 +5,7 @@
  * Don't list CQL3 table in CLI describe even if named explicitely (CASSANDRA-5750)
  * cqlsh: quote single quotes in strings inside collections (CASSANDRA-6172)
  * Improve gossip performance for typical messages (CASSANDRA-6409)
+ * Throw IRE if a prepared has more markers than supported (CASSANDRA-5598)
 
 
 1.2.12

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a322b645/src/java/org/apache/cassandra/cql3/QueryProcessor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
index 40b9339..a62b248 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -220,7 +220,10 @@ public class QueryProcessor
         ParsedStatement.Prepared prepared = getStatement(queryString, clientState);
         ResultMessage.Prepared msg = storePreparedStatement(queryString, clientState.getRawKeyspace(), prepared, forThrift);
 
-        assert prepared.statement.getBoundsTerms() == prepared.boundNames.size();
+        int bountTerms = prepared.statement.getBoundsTerms();
+        if (bountTerms > FBUtilities.MAX_UNSIGNED_SHORT)
+            throw new InvalidRequestException(String.format("Too many markers(?). %d markers exceed the allowed maximum of %d", bountTerms, FBUtilities.MAX_UNSIGNED_SHORT));
+        assert bountTerms == prepared.boundNames.size();
         return msg;
     }