Skip to content

Commit 7b1f022

Browse files
committed
resolved comments
1 parent a2ee1a1 commit 7b1f022

1 file changed

Lines changed: 12 additions & 19 deletions

File tree

src/tools/recvfuzz/recvfuzz.cpp

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
packets at the handshake stages.
2525
2626
Future:
27-
28-
Add fuzzing for 1-RTT packets.
2927
Add fuzzing for version 2.
3028
3129
--*/
@@ -518,7 +516,6 @@ void WriteAckFrame(
518516
Offset,
519517
BufferLength,
520518
Buffer));
521-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
522519
}
523520

524521
void WriteHandshakeDoneFrame(
@@ -529,7 +526,6 @@ void WriteHandshakeDoneFrame(
529526
{
530527
CXPLAT_FRE_ASSERT(*Offset + 1 <= BufferLength);
531528
Buffer[(*Offset)++] = QUIC_FRAME_HANDSHAKE_DONE;
532-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
533529
}
534530

535531
void WritePingFrame(
@@ -540,7 +536,6 @@ void WritePingFrame(
540536
{
541537
CXPLAT_FRE_ASSERT(*Offset + 1 <= BufferLength);
542538
Buffer[(*Offset)++] = QUIC_FRAME_PING;
543-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
544539
}
545540

546541
void WriteConnectionCloseFrame(
@@ -573,7 +568,6 @@ void WriteConnectionCloseFrame(
573568
GetRandomBytes(ReasonLen, Buffer + *Offset);
574569
*Offset += ReasonLen;
575570
}
576-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
577571
}
578572

579573
void WriteResetStreamFrame(
@@ -602,7 +596,6 @@ void WriteResetStreamFrame(
602596
CXPLAT_FRE_ASSERT(*Offset + QuicVarIntSize(FinalSize) <= BufferLength);
603597
QuicVarIntEncode(FinalSize, Buffer + *Offset);
604598
*Offset += QuicVarIntSize(FinalSize);
605-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
606599
}
607600

608601
void WriteStopSendingFrame(
@@ -625,7 +618,6 @@ void WriteStopSendingFrame(
625618
CXPLAT_FRE_ASSERT(*Offset + QuicVarIntSize(ErrorCode) <= BufferLength);
626619
QuicVarIntEncode(ErrorCode, Buffer + *Offset);
627620
*Offset += QuicVarIntSize(ErrorCode);
628-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
629621
}
630622

631623
void WriteMaxDataFrame(
@@ -642,7 +634,6 @@ void WriteMaxDataFrame(
642634
CXPLAT_FRE_ASSERT(*Offset + QuicVarIntSize(MaxData) <= BufferLength);
643635
QuicVarIntEncode(MaxData, Buffer + *Offset);
644636
*Offset += QuicVarIntSize(MaxData);
645-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
646637
}
647638

648639
void WriteMaxStreamDataFrame(
@@ -665,7 +656,6 @@ void WriteMaxStreamDataFrame(
665656
CXPLAT_FRE_ASSERT(*Offset + QuicVarIntSize(MaxStreamData) <= BufferLength);
666657
QuicVarIntEncode(MaxStreamData, Buffer + *Offset);
667658
*Offset += QuicVarIntSize(MaxStreamData);
668-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
669659
}
670660

671661
void WriteUnknownFrame(
@@ -689,7 +679,6 @@ void WriteUnknownFrame(
689679
GetRandomBytes(PayloadLen, Buffer + *Offset);
690680
*Offset += PayloadLen;
691681
}
692-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
693682
}
694683

695684
void WriteStreamFrame(
@@ -745,11 +734,15 @@ void WriteStreamFrame(
745734
ActualDataLength = DataLength + Extra;
746735
}
747736
}
748-
749-
CXPLAT_FRE_ASSERT(*Offset + ActualDataLength <= BufferLength);
737+
738+
// Clamp to available buffer space
739+
uint16_t RemainingSpace = BufferLength > *Offset ? (uint16_t)(BufferLength - *Offset) : 0;
740+
if (ActualDataLength > RemainingSpace) {
741+
ActualDataLength = RemainingSpace;
742+
}
743+
750744
GetRandomBytes(ActualDataLength, Buffer + *Offset);
751745
*Offset += ActualDataLength;
752-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
753746
}
754747

755748
void WriteCryptoFrame(
@@ -789,7 +782,6 @@ void WriteCryptoFrame(
789782
Offset,
790783
BufferLength,
791784
Buffer));
792-
CXPLAT_FRE_ASSERT(*Offset <= BufferLength);
793785
}
794786

795787
void WriteFrames(
@@ -809,7 +801,6 @@ void WriteFrames(
809801
PayloadLength,
810802
BufferSize,
811803
Buffer);
812-
813804
} else if (PacketParams->FrameTypes[i] == QUIC_FRAME_CRYPTO) {
814805
WriteCryptoFrame(
815806
PayloadLength,
@@ -1022,7 +1013,8 @@ void BuildAndSendLongHeaderPackets(
10221013
CXPLAT_FRE_ASSERT(SendBuffer != nullptr);
10231014
CxPlatZeroMemory(SendBuffer->Buffer, DatagramLength);
10241015

1025-
uint16_t PacketLength, HeaderLength;
1016+
uint16_t PacketLength = 0;
1017+
uint16_t HeaderLength = 0;
10261018
uint64_t PacketNum = PacketParams->PacketNumber++;
10271019
WriteLongHeaderPacket(
10281020
(uint32_t)PacketNum,
@@ -1177,13 +1169,14 @@ void BuildAndSendShortHeaderPackets(
11771169
CXPLAT_FRE_ASSERT(SendData != nullptr);
11781170

11791171
uint8_t numPacketsSent = 0;
1180-
while (!CxPlatSendDataIsFull(SendData) && numPacketsSent <= PacketParams->NumPackets) {
1172+
while (!CxPlatSendDataIsFull(SendData) && numPacketsSent < PacketParams->NumPackets) {
11811173
QUIC_BUFFER* SendBuffer =
11821174
CxPlatSendDataAllocBuffer(SendData, DatagramLength);
11831175
CXPLAT_FRE_ASSERT(SendBuffer != nullptr);
11841176
CxPlatZeroMemory(SendBuffer->Buffer, DatagramLength);
11851177

1186-
uint16_t PacketLength, HeaderLength;
1178+
uint16_t PacketLength = 0;
1179+
uint16_t HeaderLength = 0;
11871180
uint64_t PacketNum = PacketParams->PacketNumber++;
11881181
WriteShortHeaderPacket(
11891182
(uint32_t)PacketNum,

0 commit comments

Comments
 (0)