> On May 23, 2016, 11:20 a.m., David Faure wrote:
> > Please note that:
> > * the Q_BYTE_ORDER change was reverted, since it made the wallet storage 
> > incompatible with previous releases. This needs further analysis in order 
> > to improve the code while retaining compat.
> > * kwallet is definitely usable with a home install, I'm doing that right 
> > now. I do have the distro KF5 packages installed though, so maybe the 
> > polkit stuff got installed at the right place into the system as well. 
> > Anyhow it means it should be fixable with a one-time copy operation as root.
> 
> Michael Pyne wrote:
>     That reminds me, I made an autotest for the Blowfish cipher that would 
> hopefully catch such errors in the future. I've committed the autotests now 
> (they pass, hopefully they don't break CI!).
>     
>     With that autotest I think that Allen Winter's last Q_BYTE_ORDER change 
> had actually been correct (to enable the relevant code sections when 
> Q_BYTE_ORDER == Q_LITTLE_ENDIAN), but his first commit (to #include 
> qglobal.h) would have generated incorrect Wallets which would then not match 
> with KWallet when it was fixed.
>     
>     Either way someone's systems are being broken here, because the current 
> code unilaterally enables bit-shuffling always no matter if the CPU is 
> big-endian or little-endian. But I don't have a big-endian machine to test on 
> to make sure a fix would (or would not) work.

This indeed shows that the current situation (kwallet 5.23) is broken on big 
endian platforms; looking at the failures we got when it was uploaded to Debian 
few days ago, 
https://buildd.debian.org/status/logs.php?pkg=kwallet-kf5&ver=5.23.0-1&suite=sid,
 we've got failures (related to this) on mips, powerpc, and hppa (s390x is not 
built yet, but it will fail there too) -- all of them are big endian.

I can help in testing patches fixing the `blowfishtest` unit test on those 
platforms.

> the current code unilaterally enables bit-shuffling always no matter if the 
> CPU is big-endian or little-endian.

A simple fix could then be use QtGlobal again, but invert the byte order 
conditions like:
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
+#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
this would preserve the compatibility with little endian platforms, although 
breaking wallets on big endian machines.


- Pino


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127833/#review95717
-----------------------------------------------------------


On May 8, 2016, 12:10 a.m., Michael Pyne wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127833/
> -----------------------------------------------------------
> 
> (Updated May 8, 2016, 12:10 a.m.)
> 
> 
> Review request for KDE Frameworks.
> 
> 
> Repository: kwallet
> 
> 
> Description
> -------
> 
> This is a collection of minor fixes:
> 
> An uninit variable usage was noted by Coverity (CID 1289177) for a CBC crypto 
> function, though it only happens for encryption lengths that would not be hit 
> in practice. I troubleshot this in December but forgot to make a RR, but IIRC 
> the lengths that would cause problems are 7 bytes or less -- but it's still 
> better to fix.
>     
> The other Coverity fix is to avoid a needless dup(2) of an opened socket 
> since it's immediately turned into a FILE* object anyways (CID 1353007). This 
> avoids a minor resource leak of a file descriptor.
> 
> Finally, some of the ciphers use Qt checks for endianness, and need to 
> actually include the header that does this instead of relying on other parts 
> of the code incidentally pulling in the needed #includes.
> 
> 
> Diffs
> -----
> 
>   src/runtime/kwalletd/backend/cbc.cc 4c13466 
>   src/runtime/kwalletd/main.cpp 90c60d8 
> 
> Diff: https://git.reviewboard.kde.org/r/127833/diff/
> 
> 
> Testing
> -------
> 
> Everything still compiles -- I'm limited in my ability to test since I'm 
> still using KDE4's KWallet (as the KF5 stuff seems to require polkit to 
> actually work, which isn't possible with a homedir install like mine).
> 
> 
> Thanks,
> 
> Michael Pyne
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to