]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/libsystemd/sd-bus/bus-message.c
bus: implement message_read_ap() non-recursively
authorLennart Poettering <lennart@poettering.net>
Tue, 9 Apr 2013 19:03:12 +0000 (21:03 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 9 Apr 2013 19:03:12 +0000 (21:03 +0200)
commitfe1d424d29d7fd3a20ad1247db90cdf5473f522f
tree01dbb901a00ebeb9e680d0475e51ae59ad475572
parent8df31a9c980009d8a4e0ca51cc31174efb7e25c9
bus: implement message_read_ap() non-recursively

As it turns out if you pass a va_list to a function its state becomes
undefined after that function returns, and this actually does break on
x86-32.

Hence, let's reimplement message_read_ap() without the use of recursion.
Instead we now build our own stack of types in an array so that we can
decode the entire parameter list in a single stackframe.
src/libsystemd-bus/bus-message.c