fix: guard modem preset frequency when region unset#338
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughChanges guard LoRa region/channel validity: ChangesLoRa Region Validity Guards
Estimated code review effort: 2 (Simple) | ~10 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Summary
0as no valid radio frequency inLoRaPresets::getRadioFreq().Proof
The bug was observed on a T-Deck with region unset. Opening the modem preset picker displayed
FrequencySlot: 0 (1.07374e+09 MHz):Root Cause
LoRaPresets::getNumChannels()already returns0forRegionCode_UNSET, butgetRadioFreq()still performed unsigned slot math. Withchannel == 0,(channel - 1)underflowed and produced a huge MHz value.Validation
git diff --checkLoRaPresets.cpp:unset=1.07374e+09 zeroSlot=1.07374e+09 valid=902.125, exit1unset=0 zeroSlot=0 valid=902.125, exit0Note: local full CMake/doctest build on macOS is blocked before test execution by unrelated fetched Portduino/protobuf setup issues; the repo regression test is included for CI.
Summary by CodeRabbit