You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Taylan Develioglu (JIRA)" <ji...@apache.org> on 2013/08/21 17:08:52 UTC
[jira] [Reopened] (CASSANDRA-5903) Integer overflow in
OffHeapBitSet when bloomfilter > 2GB
[ https://issues.apache.org/jira/browse/CASSANDRA-5903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Taylan Develioglu reopened CASSANDRA-5903:
------------------------------------------
Sadly that wasn't sufficient, there's another overflow in OffHeapBitSet.deserialize:
{code}
public static OffHeapBitSet deserialize(DataInput dis) throws IOException
{
int byteCount = dis.readInt() * 8;
Memory memory = RefCountedMemory.allocate(byteCount);
for (int i = 0; i < byteCount;)
{
long v = dis.readLong();
memory.setByte(i++, (byte) (v >>> 0));
memory.setByte(i++, (byte) (v >>> 8));
memory.setByte(i++, (byte) (v >>> 16));
memory.setByte(i++, (byte) (v >>> 24));
memory.setByte(i++, (byte) (v >>> 32));
memory.setByte(i++, (byte) (v >>> 40));
memory.setByte(i++, (byte) (v >>> 48));
memory.setByte(i++, (byte) (v >>> 56));
}
return new OffHeapBitSet(memory);
}
{code}
> Integer overflow in OffHeapBitSet when bloomfilter > 2GB
> --------------------------------------------------------
>
> Key: CASSANDRA-5903
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5903
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Taylan Develioglu
> Assignee: Vijay
> Fix For: 1.2.9
>
> Attachments: 0001-CASSANDRA-5903.patch
>
>
> In org.apache.cassandra.utils.obs.OffHeapBitSet.
> byteCount overflows and causes an IllegalArgument exception in Memory.allocate when bloomfilter is > 2GB.
> Suggest changing byteCount to long.
> {code:title=OffHeapBitSet.java}
> public OffHeapBitSet(long numBits)
> {
> // OpenBitSet.bits2words calculation is there for backward compatibility.
> int byteCount = OpenBitSet.bits2words(numBits) * 8;
> bytes = RefCountedMemory.allocate(byteCount);
> // flush/clear the existing memory.
> clear();
> }
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira