Eduardo Aguinaga created CASSANDRA-12543: --------------------------------------------
Summary: Portability Flaw: Locale Dependent Comparison Key: CASSANDRA-12543 URL: https://issues.apache.org/jira/browse/CASSANDRA-12543 Project: Cassandra Issue Type: Sub-task Reporter: Eduardo Aguinaga Overview: In May through June of 2016 a static analysis was performed on version 3.0.5 of the Cassandra source code. The analysis included an automated analysis using HP Fortify v4.21 SCA and a manual analysis utilizing SciTools Understand v4. The results of that analysis includes the issue below. Issue: In the file ThriftConversion.java on lines 197 and 679 there is a portability problem with the call to toLowerCase() because it has different locales which may lead to unexpected output. This may also circumvent custom validation routines. ThriftConversion.java, lines 197-202: {code:java} 197 switch (thriftColumnType.toLowerCase()) 198 { 199 case "standard": return false; 200 case "super": return true; 201 default: throw new org.apache.cassandra.exceptions.InvalidRequestException("Invalid column type " + thriftColumnType); 202 } {code} ThriftConversion.java, lines 679-691: {code:java} 679 switch (caching.toUpperCase()) 680 { 681 case "ALL": 682 return CachingParams.CACHE_EVERYTHING; 683 case "ROWS_ONLY": 684 return new CachingParams(false, Integer.MAX_VALUE); 685 case "KEYS_ONLY": 686 return CachingParams.CACHE_KEYS; 687 case "NONE": 688 return CachingParams.CACHE_NOTHING; 689 default: 690 throw new ConfigurationException(String.format("Invalid value %s for caching parameter", caching)); 691 } {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)