chiark / gitweb /
sd-bus: don't access invalid memory if a signal matcher was freed from its own callback
[elogind.git] / 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);