[LTP] [PATCH] acct02: fix the ac_version check on big endian platforms
Stanislav Kholmanskikh
stanislav.kholmanskikh@oracle.com
Fri May 29 13:05:45 CEST 2020
Thank you. Committed.
On 27.05.2020 12:04, Jan Stancek wrote:
>
>
> ----- Original Message -----
>> If we are on a big endian platform where char is signed,
>> the following compilation error is emitted:
>>
>> acct02.c: In function ‘verify_acct’:
>> acct02.c:38:37: warning: comparison is always true due to limited range of
>> data type [-Wtype-limits]
>> #define ACCT_MEMBER_V3(x) (((struct acct_v3 *)acc)->x)
>> ^
>> acct02.c:144:6: note: in expansion of macro ‘ACCT_MEMBER_V3’
>> if (ACCT_MEMBER_V3(ac_version) != (3 | ACCT_BYTEORDER)) {
>>
>> and the test case fails, because it cannot 'decrypt' the ac_version
>> from the file:
>>
>> acct02.c:238: INFO: Verifying using 'struct acct_v3'
>> acct02.c:191: INFO: == entry 1 ==
>> acct02.c:146: INFO: ac_version != 3 (-125)
>>
>> One way to address that is to explicitly cast the expression
>> we compare to (which is int) to the type of ac_version (which is char).
>>
>> Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
>
> Acked-by: Jan Stancek <jstancek@redhat.com>
>
More information about the ltp
mailing list