[Nut-upsdev] [PATCH] Fix logic error in rhino driver
Stuart D Gathman
stuart at bmsi.com
Sat Oct 15 01:38:02 UTC 2011
On 10/14/2011 06:10 PM, Regid Ichira wrote:
> The if() statement always evaluated to true.
>> Detected by "cppcheck", not tested on real hardware.
>> - if( ( BattVoltage > 129 ) || ( BattVoltage < 144 ) )
>> + if( ( BattVoltage > 129 ) && ( BattVoltage < 144 ) )
> I think the current, ||, logic is fine. I can't see in what
> circumstances it would yield the wrong decision. Can anyone point a
> scenario where I am wrong?
As the diagnostic says, it is always true. No matter what value
BattVoltage takes, whether float or int,
it is always either > 129 or < 144. It is clearly a bug, but we aren't
sure whether it should be
in range, out of range, or just remove the test altogether (since it
seems to work when always true).
More information about the Nut-upsdev