Recent breakage in kwallet

Harald Sitter sitter at kde.org
Tue May 26 09:37:41 BST 2020


here's my understanding of the problem:

firstly, this is likely only a problem on debian-derived systems. and
also only with blowfish

debian has this patch [1] which on *actual* little endian systems
(x86,arm64...) would run the conditional branches. the thing to note
is that not only QBO is defined but also the ifs get changed. so, on
LE systems that original patch was behaving the same as the QBO==QBE
check (with both undefined) in kwallet proper. on BE systems however
the conditional aren't run and so the output is different between us
(kf5) and them (debian-derived system).
so far so messy.

what I think was the trouble Marco mentioned is that the original
debian patch was badly merged with the change David made. specifically
because of the changed conditionals, QBO must not be hardcoded with
that patch as that'd make QBO!=QLE and fail the conditionals below
thus change behavior.

in short: I don't think David's commit broke anything. I've also made
a potential fix for the actual bug in neon just now.

also about [2] I'm sure that's not quite right because it breaks
things the other way around (i.e. for it to work it'd also have to
change the conditionals from QBO==QBE to QBO==QLE, same as the debian
patch). and that would technically break wallets on big endian
architectures (not that I'm sure we have many users on those). the way
I see it kwallet can never be properly endian aware as it'd break
legacy compatibility. equally debian can never not have the patch
because it'd then no longer be properly endian aware and break its
legacy compatibility.... well, of course either could decide that big
endian isn't important enough and either become endian aware, or
endian unaware ;)

[1] https://packaging.neon.kde.org/kde/kwallet.git/commit/debian/patches/blowfish_endianess.diff?id=188ca124c69902e4fba01d2af6b419e1aac71177
[2] https://invent.kde.org/frameworks/kwallet/-/merge_requests/1


More information about the Kde-frameworks-devel mailing list