Skip to content

Commit dd58e1f

Browse files
committed
Ensure read/write indices of input buffers are not modified
1 parent 60b8201 commit dd58e1f

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

rsocket-core/src/main/java/io/rsocket/frame/FrameHeaderFlyweight.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public static int encodeMetadata(
115115
encodeLength(byteBuf, metadataOffset, metadataLength);
116116
length += FRAME_LENGTH_SIZE;
117117
}
118-
byteBuf.setBytes(metadataOffset + length, metadata);
118+
byteBuf.setBytes(metadataOffset + length, metadata, metadata.readerIndex(), metadataLength);
119119
length += metadataLength;
120120
}
121121

@@ -127,7 +127,7 @@ public static int encodeData(final ByteBuf byteBuf, final int dataOffset, final
127127
final int dataLength = data.readableBytes();
128128

129129
if (0 < dataLength) {
130-
byteBuf.setBytes(dataOffset, data);
130+
byteBuf.setBytes(dataOffset, data, data.readerIndex(), dataLength);
131131
length += dataLength;
132132
}
133133

rsocket-core/src/main/java/io/rsocket/frame/SetupFrameFlyweight.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ static int encode(
134134
byteBuf.setShort(length, resumeToken.readableBytes());
135135
length += Short.BYTES;
136136
int resumeTokenLength = resumeToken.readableBytes();
137-
byteBuf.setBytes(length, resumeToken, resumeTokenLength);
137+
byteBuf.setBytes(length, resumeToken, resumeToken.readerIndex(), resumeTokenLength);
138138
length += resumeTokenLength;
139139
}
140140

rsocket-core/src/main/java/io/rsocket/util/ByteBufPayload.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@ public boolean hasMetadata() {
5151

5252
@Override
5353
public ByteBuf sliceMetadata() {
54-
return metadata == null ? Unpooled.EMPTY_BUFFER : metadata;
54+
return metadata == null ? Unpooled.EMPTY_BUFFER : metadata.slice();
5555
}
5656

5757
@Override
5858
public ByteBuf sliceData() {
59-
return data;
59+
return data.slice();
6060
}
6161

6262
@Override

rsocket-core/src/main/java/io/rsocket/util/DefaultPayload.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,12 @@ public ByteBuf sliceData() {
5757

5858
@Override
5959
public ByteBuffer getMetadata() {
60-
return metadata == null ? DefaultPayload.EMPTY_BUFFER : metadata;
60+
return metadata == null ? DefaultPayload.EMPTY_BUFFER : metadata.duplicate();
6161
}
6262

6363
@Override
6464
public ByteBuffer getData() {
65-
return data;
65+
return data.duplicate();
6666
}
6767

6868
@Override

0 commit comments

Comments
 (0)