On Fri, Apr 05, 2013 at 11:26:49PM +0200, Zbigniew Jędrzejewski-Szmek wrote:
> On Fri, Apr 05, 2013 at 07:32:53PM +0200, Lennart Poettering wrote:
> > On Sat, 30.03.13 18:41, Philip Müller ([email protected]) wrote:
> > 
> > > Same issue with make check as reported before:
> > > 
> > >
> > >http://lists.freedesktop.org/archives/systemd-devel/2013-March/009971.html
> > 
> > Hmm, this looks really weird. I cannot reproduce this here, and valgrind
> > shows nothing. I wonder if this has to do something 32bit vs. 64bit (I
> > only have the latter here).
> > 
> > Can anyone reproduce the issue when running test-bus-marshal through
> > valgrind on x86-32?
> Hi,
> 
> I had a go at debugging this... I think that the is the "return of the
> va_arg and undefined aps" horror. The result is that in 
> test-bus-marshall.c:133
> and test-bus-marshall.c:139 (at least), some of the output arguments are not
> initialized at all and segfault happens. Under gdb I see that va_arg(ap, 
> void*)
> returns &y twice.
> 
> According to va_arg(3), "If ap is passed to a function that uses
> va_arg(ap,type) then the value of ap is undefined after the return of
> that function." So message_read_ap calling itself recursively is not an
> option.
...unless we implement DBUS_FORMAT_FORMAT_ADVANCE, which calls itself
recursively (yuck), and use va_copy (yuck). But maybe that's the way.

Zbyszek
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to