Thrift-1701:node.js TBufferedTransport buffer corruption
authorHenrique Mendonca <henrique@apache.org>
Mon, 24 Sep 2012 19:11:19 +0000 (19:11 +0000)
committerHenrique Mendonca <henrique@apache.org>
Mon, 24 Sep 2012 19:11:19 +0000 (19:11 +0000)
Patch: Marshall Roch

fix buffer copy method calls

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1389517 13f79535-47bb-0310-9956-ffa450edef68

lib/nodejs/lib/thrift/transport.js

index a926a6d..06351a4 100644 (file)
@@ -165,7 +165,7 @@ TBufferedTransport.prototype = {
     var bufSize = (unreadedSize * 2 > this.defaultReadBufferSize) ? unreadedSize * 2 : this.defaultReadBufferSize;
     var buf = new Buffer(bufSize);
     if (unreadedSize > 0) {
-      this.inBuf.copy(buf, 0, this.readCursor, unreadedSize);
+      this.inBuf.copy(buf, 0, this.readCursor, this.writeCursor);
     }
     this.readCursor = 0;
     this.writeCursor = unreadedSize;
@@ -195,7 +195,7 @@ TBufferedTransport.prototype = {
       throw new InputBufferUnderrunError();
     }
     var buf = new Buffer(this.writeCursor - this.readCursor);
-    this.inBuf.copy(buf, 0, this.readCursor, this.writeCursor - this.readCursor);
+    this.inBuf.copy(buf, 0, this.readCursor, this.writeCursor);
     this.readCursor = this.writeCursor;
     return buf;
   },