[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 mailing list