chiark / gitweb /
sd-bus: don't access invalid memory if a signal matcher was freed from its own callback
authorLennart Poettering <lennart@poettering.net>
Fri, 14 Mar 2014 20:12:36 +0000 (21:12 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 14 Mar 2014 20:17:14 +0000 (21:17 +0100)
src/libsystemd/sd-bus/bus-match.c

index 828048806ff7230b41f94a7f9c5e6e8ca3e4aecb..c54ca8d71d1bee31f00422034b62ebc152e38f1f 100644 (file)
@@ -293,6 +293,9 @@ int bus_match_run(
                         r = bus_maybe_reply_error(m, r, &error_buffer);
                         if (r != 0)
                                 return r;
+
+                        if (bus && bus->match_callbacks_modified)
+                                return 0;
                 }
 
                 return bus_match_run(bus, node->next, m);