[Pkg-utopia-maintainers] Bug#873833: dbus: test-fdpass fails on kfreebsd-amd64: test_odd_limit: assertion failed: (dbus_message_contains_unix_fds (incoming)

Simon McVittie smcv at debian.org
Thu Aug 31 14:39:08 UTC 2017


Source: dbus
Version: 1.11.16+really1.10.22
Severity: normal

(X-Debbugs-Cc to debian-bsd)

I recently enabled build-time tests for dbus, after fixing the home
directory issue that had previously meant they failed on all Debian
buildds. Unfortunately this led to a build failure on kfreebsd-amd64.
Because it's reasonably clear that nobody with an interest in FreeBSD
is currently contributing to dbus, and the test results indicate that
dbus does basically work, I'm going to ignore the test failures on
!linux for the moment.

On the kfreebsd porterbox fala, this is easy to reproduce by building
dbus, then running:

    make VERBOSE=1 -C debian/build-debug -k check

or:

    ./debian/build-debug/test/test-fdpass --tap

Interestingly, this is fine on kfreebsd-i386 (confirmed on fischer)
so perhaps it's an alignment issue?

The bug I'm describing in this bug report manifests as a failure of
the test case test-fdpass. The log in debian/build-debug/test/test-fdpass.log
says:

> # Start of odd-limit tests
> ok 12 /odd-limit/minus1
> PASS: test-fdpass 12 /odd-limit/minus1
> # ERROR:../../../test/fdpass.c:772:test_odd_limit: assertion failed: (dbus_message_contains_unix_fds (incoming))

This test asserts that when the maximum number of Unix fds allowed per
message is set to 7, and we send a message containing exactly 7 fds,
it works. Other test-cases in the same executable assert that with the
limit set to 7, we can send 6 fds but cannot send 8 or 9. Perhaps there
is an off-by-one or an alignment error in the FreeBSD code paths around
SCM_RIGHTS and/or CMSG_*?

For context, this test was added for CVE-2014-3635 aka
https://bugs.freedesktop.org/show_bug.cgi?id=83622
which was a denial of service (remote crash) on Linux.

    S



More information about the Pkg-utopia-maintainers mailing list