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 2014/08/20 01:22:51 UTC

git commit: Validate epmty cell names from counter updates

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-1.2 48d6950c1 -> 88f2d9907


Validate epmty cell names from counter updates

patch by Aleksey Yeschenko; reviewed by Jeremiah Jordan for
CASSANDRA-7798


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

Branch: refs/heads/cassandra-1.2
Commit: 88f2d9907893b893c85ad2a2d64dafcd1ab00461
Parents: 48d6950
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Wed Aug 20 02:22:01 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Aug 20 02:22:01 2014 +0300

----------------------------------------------------------------------
 CHANGES.txt                                              | 1 +
 src/java/org/apache/cassandra/cql3/Constants.java        | 4 ++--
 src/java/org/apache/cassandra/cql3/UpdateParameters.java | 6 ++++++
 3 files changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/88f2d990/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index db5fa3a..6b81bc0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.19
+ * Validate epmty cell names from counter updates (CASSANDRA-7798)
  * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
  * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
  * Clone token map outside of hot gossip loops (CASSANDRA-7758)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/88f2d990/src/java/org/apache/cassandra/cql3/Constants.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Constants.java b/src/java/org/apache/cassandra/cql3/Constants.java
index 4c9d856..1c7feaf 100644
--- a/src/java/org/apache/cassandra/cql3/Constants.java
+++ b/src/java/org/apache/cassandra/cql3/Constants.java
@@ -326,7 +326,7 @@ public abstract class Constants
                 throw new InvalidRequestException("Invalid null value for counter increment");
             long increment = ByteBufferUtil.toLong(bytes);
             ByteBuffer cname = columnName == null ? prefix.build() : prefix.add(columnName.key).build();
-            cf.addCounter(new QueryPath(cf.metadata().cfName, null, cname), increment);
+            cf.addColumn(params.makeCounter(cname, increment));
         }
     }
 
@@ -348,7 +348,7 @@ public abstract class Constants
                 throw new InvalidRequestException("The negation of " + increment + " overflows supported counter precision (signed 8 bytes integer)");
 
             ByteBuffer cname = columnName == null ? prefix.build() : prefix.add(columnName.key).build();
-            cf.addCounter(new QueryPath(cf.metadata().cfName, null, cname), -increment);
+            cf.addColumn(params.makeCounter(cname, -increment));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/88f2d990/src/java/org/apache/cassandra/cql3/UpdateParameters.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/UpdateParameters.java b/src/java/org/apache/cassandra/cql3/UpdateParameters.java
index b938fea..3d87598 100644
--- a/src/java/org/apache/cassandra/cql3/UpdateParameters.java
+++ b/src/java/org/apache/cassandra/cql3/UpdateParameters.java
@@ -57,6 +57,12 @@ public class UpdateParameters
              : new Column(name, value, timestamp);
     }
 
+    public Column makeCounter(ByteBuffer name, long delta) throws InvalidRequestException
+    {
+        QueryProcessor.validateColumnName(name);
+        return new CounterUpdateColumn(name, delta, System.currentTimeMillis());
+    }
+
     public Column makeTombstone(ByteBuffer name) throws InvalidRequestException
     {
         QueryProcessor.validateColumnName(name);