libverto integration caused kadm5 unit tests to fail...
ghudson at MIT.EDU
Sat Sep 24 10:43:09 EDT 2011
On Fri, 2011-09-23 at 19:21 -0400, Ezra Peisach wrote:
> Fedora 15 system, i386. Running the lib/kadm5/unit-tests fails init 117
> and then all tests fail.
This one evaded me for a while mainly because it's 32-bit specific and
my dev machine is 64-bit. I was seeing the failure on the Solaris
32-bit nightly build, but the nature of that build environment made it
difficult to track down the bug there. So, thanks for the additional
information; I was able to reproduce the bug using my 32-bit laptop.
The underlying cause of the bug predates the verto integration.
net-server.c uses a union for type-specific fields of struct connection,
but uses conn->u.tcp fields as well as conn->u.rpc fields for RPC
connections. As part of the verto integration, a new RPC field
conn->u.rpc.closed was added to track whether the net-server loop is
force-closing an RPC connection. On 32-bit platforms, reading the peer
address into conn->u.tcp.addrbuf causes conn->u.rpc.closed to be
non-zero, confusing free_socket() into causing a null pointer deref.
I will fix this by getting rid of the union.
More information about the krbdev