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
| ||
|
Date: Fri, 23 Jan 2009 09:52:44 -0500 From: Vlad Yasevich <vladislav.yasevich@...com> To: Herbert Xu <herbert@...dor.apana.org.au> CC: netdev@...r.kernel.org, linux-sctp@...r.kernel.org, davem@...emloft.net Subject: Re: [PATCH 1/4] sctp: Fix crc32c calculations on big-endian arhes. Herbert Xu wrote: > On Fri, Jan 23, 2009 at 04:28:49PM +1100, Herbert Xu wrote: >>>> static inline __be32 sctp_end_cksum(__be32 crc32) >>>> { >>>> - return ~crc32; >>>> + return (__force __be32)~cpu_to_le32((__force u32)crc32); >>>> } >>> Ouch, surely there is a better way to do this? >> In fact this looks wrong. Has this code actually been tested >> on big-endian? Yes, the code was tested by me and the person who reported it as listed in the commit log. :) > > Reading this again it does seem to do the right thing as it's > using the raw crc32c interface as opposed to crypto crc32c. > > However, I suggest that we change it as follows: > > 1) Make sh->csum __le32 since we're using crc32c_le. > 2) Change all intermediate values in sctp/checksum.h to u32. > 3) Make sctp_end_cksum return __le32 and have it do > > return cpu_to_le32(~crc); > I'll give it some thought. It would clean up all the __force casts, but it will be a little misleading to define a packet checksum as little endian. :) -vlad > Cheers, -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists