Skip to content

Commit 89526c5

Browse files
committed
verify crsf frame length when handling CRSF_FRAMETYPE_MSP_REQ/CRSF_FRAMETYPE_MSP_WRITE
1 parent 2747993 commit 89526c5

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/main/rx/crsf.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,13 @@ STATIC_UNIT_TESTED void crsfDataReceive(uint16_t c, void *rxCallbackData)
173173
#if defined(USE_MSP_OVER_TELEMETRY)
174174
case CRSF_FRAMETYPE_MSP_REQ:
175175
case CRSF_FRAMETYPE_MSP_WRITE: {
176-
uint8_t *frameStart = (uint8_t *)&crsfFrame.frame.payload + CRSF_FRAME_ORIGIN_DEST_SIZE;
177-
if (bufferCrsfMspFrame(frameStart, crsfFrame.frame.frameLength - 4)) {
178-
crsfScheduleMspResponse(crsfFrame.frame.payload[1]);
176+
if (crsfFrame.frame.frameLength >= 4) {
177+
uint8_t *frameStart = (uint8_t *)&crsfFrame.frame.payload + CRSF_FRAME_ORIGIN_DEST_SIZE;
178+
if (bufferCrsfMspFrame(frameStart, crsfFrame.frame.frameLength - 4)) {
179+
crsfScheduleMspResponse(crsfFrame.frame.payload[1]);
180+
}
181+
} else {
182+
crsfFrameDone = false;
179183
}
180184
break;
181185
}

0 commit comments

Comments
 (0)