mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-26 09:45:33 +03:00
Make MSP_SET_TX_INFO not crash on malformed MSP messages
Since it will be used while the machine is armed and over telemetry, we need to make sure a malformed request doesn't crash the FC. Also, rename setRSSIMsp() to setRSSIFromMSP()
This commit is contained in:
parent
f4db6341a8
commit
3022df24f5
3 changed files with 9 additions and 3 deletions
|
@ -2257,7 +2257,13 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
|
|||
|
||||
case MSP_SET_TX_INFO:
|
||||
{
|
||||
setRSSIMsp(sbufReadU8(src));
|
||||
// This message will be sent while the aircraft is
|
||||
// armed. Better to guard ourselves against potentially
|
||||
// malformed requests.
|
||||
uint8_t rssi;
|
||||
if (sbufReadU8Safe(&rssi, src)) {
|
||||
setRSSIFromMSP(rssi);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -581,7 +581,7 @@ void setRSSIUnfiltered(uint16_t rssiValue, rssiSource_e source)
|
|||
rssi = rssiMean;
|
||||
}
|
||||
|
||||
void setRSSIMsp(uint8_t newMspRssi)
|
||||
void setRSSIFromMSP(uint8_t newMspRssi)
|
||||
{
|
||||
if (rssiSource == RSSI_SOURCE_NONE) {
|
||||
rssiSource = RSSI_SOURCE_MSP;
|
||||
|
|
|
@ -172,7 +172,7 @@ void parseRcChannels(const char *input);
|
|||
|
||||
void setRSSIFiltered(uint16_t newRssi, rssiSource_e source);
|
||||
void setRSSIUnfiltered(uint16_t rssiValue, rssiSource_e source);
|
||||
void setRSSIMsp(uint8_t newMspRssi);
|
||||
void setRSSIFromMSP(uint8_t newMspRssi);
|
||||
void updateRSSI(timeUs_t currentTimeUs);
|
||||
uint16_t getRSSI(void);
|
||||
rssiSource_e getRSSISource(void);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue