lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230520015527.215952-1-minhuadotchen@gmail.com>
Date:   Sat, 20 May 2023 09:55:27 +0800
From:   Min-Hua Chen <minhuadotchen@...il.com>
To:     kuba@...nel.org
Cc:     alexandre.torgue@...s.st.com, davem@...emloft.net,
        edumazet@...gle.com, joabreu@...opsys.com,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
        linux-stm32@...md-mailman.stormreply.com,
        mcoquelin.stm32@...il.com, minhuadotchen@...il.com,
        netdev@...r.kernel.org, pabeni@...hat.com, peppe.cavallaro@...com,
        simon.horman@...igine.com
Subject: Re: [PATCH v3] net: stmmac: compare p->des0 and p->des1 with __le32 type values

Hi Jakub,

>On Fri, 19 May 2023 19:50:28 +0800 Min-Hua Chen wrote:
>> -		if ((p->des0 == 0xffffffff) && (p->des1 == 0xffffffff))
>> +		if (p->des0 == cpu_to_le32(0xffffffff) &&
>> +		    p->des1 == cpu_to_le32(0xffffffff))
>
>Can you try to fix the sparse tool instead? I believe it already
>ignores such errors for the constant of 0, maybe it can be taught 
>to ignore all "isomorphic" values?
>

I downloaded the source code of sparse and I'm afraid that I cannot make
0xFFFFFFFF ignored easily. I've tried ~0 instead of 0xFFFFFF,
but it did not work with current sparse.

0 is a special case mentioned in [1].

"""
One small note: the constant integer “0” is special. 
You can use a constant zero as a bitwise integer type without
sparse ever complaining. This is because “bitwise” (as the name
implies) was designed for making sure that bitwise types don’t
get mixed up (little-endian vs big-endian vs cpu-endian vs whatever),
and there the constant “0” really _is_ special.
"""

For 0xFFFFFFFF, it may look like a false alarm, but we can silence the
sparse warning by taking a fix like mine and people can keep working on
other sparse warnings easier.
(There are around 7000 sparse warning in ARCH=arm64 defconfig build and
sometimes it is hard to remember all the false alarm cases)

Could you consider taking this patch, please?

>
>By "isomorphic" I mean that 0xffffffff == cpu_to_le32(0xffffffff)
>so there's no point complaining.

thanks,
Min-Hua

[1] https://www.kernel.org/doc/html/v4.12/dev-tools/sparse.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ