Repository: hbase
Updated Branches:
  refs/heads/branch-2 03cb58158 -> b9f1f5a17


HBASE-18112 (addendum) fix the out-of-bounds index


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

Branch: refs/heads/branch-2
Commit: b9f1f5a17cc60d5f690fdda236208a7ed7207d64
Parents: 03cb581
Author: Chia-Ping Tsai <[email protected]>
Authored: Wed Dec 6 21:54:45 2017 +0800
Committer: Chia-Ping Tsai <[email protected]>
Committed: Wed Dec 6 22:01:12 2017 +0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/ipc/NettyRpcFrameDecoder.java    | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/b9f1f5a1/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcFrameDecoder.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcFrameDecoder.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcFrameDecoder.java
index d600712..1b395a4 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcFrameDecoder.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcFrameDecoder.java
@@ -95,18 +95,14 @@ public class NettyRpcFrameDecoder extends 
ByteToMessageDecoder {
     }
 
     int frameLengthInt = (int) frameLength;
-    if (in.readableBytes() < frameLengthInt) {
+    if (in.readableBytes() < frameLengthInt + FRAME_LENGTH_FIELD_LENGTH) {
       return;
     }
 
     in.skipBytes(FRAME_LENGTH_FIELD_LENGTH);
 
     // extract frame
-    int readerIndex = in.readerIndex();
-    ByteBuf frame = in.retainedSlice(readerIndex, frameLengthInt);
-    in.readerIndex(readerIndex + frameLengthInt);
-
-    out.add(frame);
+    out.add(in.readRetainedSlice(frameLengthInt));
   }
 
   private void handleTooBigRequest(ByteBuf in) throws IOException {

Reply via email to