mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-26 17:55:28 +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:
|
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;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -581,7 +581,7 @@ void setRSSIUnfiltered(uint16_t rssiValue, rssiSource_e source)
|
||||||
rssi = rssiMean;
|
rssi = rssiMean;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setRSSIMsp(uint8_t newMspRssi)
|
void setRSSIFromMSP(uint8_t newMspRssi)
|
||||||
{
|
{
|
||||||
if (rssiSource == RSSI_SOURCE_NONE) {
|
if (rssiSource == RSSI_SOURCE_NONE) {
|
||||||
rssiSource = RSSI_SOURCE_MSP;
|
rssiSource = RSSI_SOURCE_MSP;
|
||||||
|
|
|
@ -172,7 +172,7 @@ void parseRcChannels(const char *input);
|
||||||
|
|
||||||
void setRSSIFiltered(uint16_t newRssi, rssiSource_e source);
|
void setRSSIFiltered(uint16_t newRssi, rssiSource_e source);
|
||||||
void setRSSIUnfiltered(uint16_t rssiValue, 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);
|
void updateRSSI(timeUs_t currentTimeUs);
|
||||||
uint16_t getRSSI(void);
|
uint16_t getRSSI(void);
|
||||||
rssiSource_e getRSSISource(void);
|
rssiSource_e getRSSISource(void);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue