Skip to content

Commit ebab50a

Browse files
authored
MySQL binary decoding BLOB type should use a copied heap buffer instead of referencing the slice of direct buffer. (#600)
1 parent 0cea83b commit ebab50a

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

vertx-mysql-client/src/main/java/io/vertx/mysqlclient/impl/datatype/DataTypeCodec.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -550,11 +550,10 @@ private static Object binaryDecodeBlobOrText(int collationId, int columnDefiniti
550550
private static Buffer binaryDecodeBlob(ByteBuf buffer) {
551551
int len = (int) BufferUtils.readLengthEncodedInteger(buffer);
552552

553-
Buffer target = Buffer.buffer(len);
554-
target.appendBuffer(Buffer.buffer(buffer.slice(buffer.readerIndex(), len)));
555-
buffer.skipBytes(len);
553+
ByteBuf copy = Unpooled.buffer(len);
554+
copy.writeBytes(buffer, len);
556555

557-
return target;
556+
return Buffer.buffer(copy);
558557
}
559558

560559
private static String binaryDecodeText(Charset charset, ByteBuf buffer) {

0 commit comments

Comments
 (0)