Add missing boundary checks in vtx_common for band, channel and powerlevel index

Previously there were cases where the input was not compared to the currently defined vtxtable limits and this could lead to a wedge as code referenced the uninitialize string arrays.
This commit is contained in:
Bruce Luckcuck 2019-09-10 15:40:11 -04:00
parent 2a18209492
commit 1138c4dd6a
1 changed files with 4 additions and 4 deletions

View File

@ -148,7 +148,7 @@ bool vtxCommonGetStatus(const vtxDevice_t *vtxDevice, unsigned *status)
const char *vtxCommonLookupBandName(const vtxDevice_t *vtxDevice, int band)
{
if (vtxDevice) {
if (vtxDevice && band > 0 && band <= vtxTableBandCount) {
return vtxTableBandNames[band];
} else {
return "?";
@ -157,7 +157,7 @@ const char *vtxCommonLookupBandName(const vtxDevice_t *vtxDevice, int band)
char vtxCommonLookupBandLetter(const vtxDevice_t *vtxDevice, int band)
{
if (vtxDevice) {
if (vtxDevice && band > 0 && band <= vtxTableBandCount) {
return vtxTableBandLetters[band];
} else {
return '?';
@ -166,7 +166,7 @@ char vtxCommonLookupBandLetter(const vtxDevice_t *vtxDevice, int band)
const char *vtxCommonLookupChannelName(const vtxDevice_t *vtxDevice, int channel)
{
if (vtxDevice) {
if (vtxDevice && channel > 0 && channel <= vtxTableChannelCount) {
return vtxTableChannelNames[channel];
} else {
return "?";
@ -214,7 +214,7 @@ uint16_t vtxCommonLookupFrequency(const vtxDevice_t *vtxDevice, int band, int ch
const char *vtxCommonLookupPowerName(const vtxDevice_t *vtxDevice, int index)
{
if (vtxDevice) {
if (vtxDevice && index > 0 && index <= vtxTablePowerLevels) {
return vtxTablePowerLabels[index];
} else {
return "?";