diff --git a/libraries/RC_Channel/RC_Channels.cpp b/libraries/RC_Channel/RC_Channels.cpp index 97f9b83d38..57c2aa7e25 100644 --- a/libraries/RC_Channel/RC_Channels.cpp +++ b/libraries/RC_Channel/RC_Channels.cpp @@ -208,10 +208,10 @@ void RC_Channels::read_mode_switch() */ bool RC_Channels::get_pwm(uint8_t c, uint16_t &pwm) const { - if (c < 1 || c > NUM_RC_CHANNELS) { + RC_Channel *chan = rc_channel(c-1); + if (chan == nullptr) { return false; } - RC_Channel *chan = rc_channel(c-1); int16_t pwm_signed = chan->get_radio_in(); if (pwm_signed < 0) { return false; diff --git a/libraries/RC_Channel/examples/RC_Channel/RC_Channel.cpp b/libraries/RC_Channel/examples/RC_Channel/RC_Channel.cpp index 0683e507a8..b8769ce5a0 100644 --- a/libraries/RC_Channel/examples/RC_Channel/RC_Channel.cpp +++ b/libraries/RC_Channel/examples/RC_Channel/RC_Channel.cpp @@ -29,7 +29,7 @@ public: RC_Channel_Example obj_channels[NUM_RC_CHANNELS]; RC_Channel_Example *channel(const uint8_t chan) override { - if (chan > NUM_RC_CHANNELS) { + if (chan >= NUM_RC_CHANNELS) { return nullptr; } return &obj_channels[chan];