Segfault calling SetRealName on 32-bit ARM
I added an integration test to Debian's accountsservice packaging, to validate our backports of !118 (merged) and !119 (merged). This is a destructive "as-installed" test, designed to be run inside an expendable container or virtual machine (it creates and destroys users), so it is not necessarily suitable for upstream inclusion.
This passed on most of our architectures that provide as-installed testing facilities, but failed on armel (ARMv5 EABI softfloat) and armhf (ARMv7 EABI hardfloat) with a segmentation fault in accounts-daemon while handling a call to SetRealName()
.
On investigation, it looks like this was a format string issue: accounts-daemon uses format %d
to print a 64-bit integer, resulting in the stack contents not matching what was expected on the two 32-bit ARM architectures. For whatever obscure ABI reason, this didn't crash on i386.
Fixed by !120 (merged).