Author: gdusbabek
Date: Thu Aug 12 21:28:40 2010
New Revision: 984986

URL: http://svn.apache.org/viewvc?rev=984986&view=rev
Log:
disallow a wider range of invalid keyspace and column family names. patch by 
gdusbabek, reviewed by jbellis. CASSANDRA-1377

Modified:
    cassandra/branches/cassandra-0.6/CHANGES.txt
    
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java

Modified: cassandra/branches/cassandra-0.6/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/CHANGES.txt?rev=984986&r1=984985&r2=984986&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.6/CHANGES.txt Thu Aug 12 21:28:40 2010
@@ -7,6 +7,8 @@
  * remove String.trim() call on row keys in batch mutations (CASSANDRA-1235)
  * Log summary of dropped messages instead of spamming log (CASSANDRA-1284)
  * Dynamic snitch (CASSANDRA-981)
+ * Use a regex to filter keyspace and column family names during
+   initialization (CASSANDRA-1377)
 
 
 0.6.4

Modified: 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=984986&r1=984985&r2=984986&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
 (original)
+++ 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
 Thu Aug 12 21:28:40 2010
@@ -590,6 +590,8 @@ public class DatabaseDescriptor
                 {
                     throw new ConfigurationException("'system' is a reserved 
table name for Cassandra internals");
                 }
+                if (!ksName.matches("\\w+"))
+                    throw new ConfigurationException("keyspace name contains 
invalid char");
 
                 /* See which replica placement strategy to use */
                 String replicaPlacementStrategyClassName = 
xmlUtils.getNodeValue("/Storage/Keyspaces/keyspa...@name='" + ksName + 
"']/ReplicaPlacementStrategy");
@@ -671,9 +673,9 @@ public class DatabaseDescriptor
                     {
                         throw new ConfigurationException("ColumnFamily name 
attribute is required");
                     }
-                    if (cfName.contains("-"))
+                    if (!cfName.matches("\\w+"))
                     {
-                        throw new ConfigurationException("ColumnFamily names 
cannot contain hyphens");
+                        throw new ConfigurationException("ColumnFamily name 
contains invalid characters.");
                     }
                     String xqlCF = xqlTable + "columnfami...@name='" + cfName 
+ "']/";
 


Reply via email to