ArduPilot / ArduPilot/apm_planner
User input is not checked propperly in adv parameter list
- Dominant language
- C++
- Stars
- 550
- Forks
- 483
- PR merge metrics
- No merged PRs in 30d
Description
Using latest master, the user is allowed to enter non-numeric values in the advanced parameter list (and may be somewhere else, too). These are converted to zero internally when the changes are written to the vehicle.
Just try the following: enter "0,15" on ArduCopter parameter RATE_PIT_P. The value will be accepted, the row changes to green. If you press write now, the value changes into "0.000". This value will be written into the vehicle without further warning.
If your vehicle was in the air while doing this, you better bring your shovel for recovery...
PS.: may be the bug is related to my German locale setting (0,15 in German means 0.15 in English number formatting).
Contributor guide
Research direction
Start in the advanced parameter list by reproducing the RATE_PIT_P case with the German locale and input "0,15". Trace validation and conversion through the write path; done means invalid or locale-formatted input is not silently accepted as zero or written to the vehicle.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100