From 62714a9fed4edfbff49543319c28e8bedab0a0d3 Mon Sep 17 00:00:00 2001 From: Sam Tunnicliffe Date: Mon, 6 Jul 2015 10:55:59 +0100 Subject: [PATCH] Conditionally read token in AuthSuccess#decode Patch by Pierre Nogues; reviewed by Sam Tunnicliffe for CASSANDRA-9727 --- CHANGES.txt | 1 + .../apache/cassandra/transport/messages/AuthSuccess.java | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index e4539584a8..ca4d4b5a45 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.17 + * Avoid NPE in AuthSuccess#decode (CASSANDRA-9727) * Add listen_address to system.local (CASSANDRA-9603) * Bug fixes to resultset metadata construction (CASSANDRA-9636) * Fix setting 'durable_writes' in ALTER KEYSPACE (CASSANDRA-9560) diff --git a/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java b/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java index 2595f2846e..20bbed4f0a 100644 --- a/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java +++ b/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java @@ -36,8 +36,12 @@ public class AuthSuccess extends Message.Response public AuthSuccess decode(ChannelBuffer body, int version) { ByteBuffer b = CBUtil.readValue(body); - byte[] token = new byte[b.remaining()]; - b.get(token); + byte[] token = null; + if (b != null) + { + token = new byte[b.remaining()]; + b.get(token); + } return new AuthSuccess(token); }