Repository: hbase
Updated Branches:
  refs/heads/master 75cdbb570 -> ebd8841e0


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/ebd8841e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/ebd8841e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/ebd8841e

Branch: refs/heads/master
Commit: ebd8841e0ee9ca1ab7b6dab55178761360b8d85a
Parents: 75cdbb5
Author: Chia-Ping Tsai <chia7...@gmail.com>
Authored: Wed Dec 6 21:54:45 2017 +0800
Committer: Chia-Ping Tsai <chia7...@gmail.com>
Committed: Wed Dec 6 21:54:45 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/ebd8841e/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