X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fbus-match.c;h=501a38df70b8aad2905d687fffc5bf070e348624;hb=7027ff61a34a12487712b382a061c654acc3a679;hp=37e7cc71f38c2a0d6a7db919175336fe914ba929;hpb=2244a6fbe6012924e74c7f2197512a55e9238b05;p=elogind.git diff --git a/src/libsystemd-bus/bus-match.c b/src/libsystemd-bus/bus-match.c index 37e7cc71f..501a38df7 100644 --- a/src/libsystemd-bus/bus-match.c +++ b/src/libsystemd-bus/bus-match.c @@ -146,7 +146,7 @@ static bool value_node_test( case BUS_MATCH_MEMBER: case BUS_MATCH_PATH: case BUS_MATCH_ARG ... BUS_MATCH_ARG_LAST: - return streq(node->value.str, value_str); + return streq_ptr(node->value.str, value_str); case BUS_MATCH_ARG_NAMESPACE ... BUS_MATCH_ARG_NAMESPACE_LAST: return namespace_simple_pattern(node->value.str, value_str); @@ -251,6 +251,10 @@ int bus_match_run( node->leaf.last_iteration = bus->iteration_counter; } + r = sd_bus_message_rewind(m, true); + if (r < 0) + return r; + /* Run the callback. And then invoke siblings. */ assert(node->leaf.callback); r = node->leaf.callback(bus, ret, m, node->leaf.userdata);