_dbus_server_new_for_socket: Invalidate watches during error unwinding
authorSimon McVittie <smcv@collabora.com>
Tue, 21 Nov 2017 14:36:02 +0000 (14:36 +0000)
committerSimon McVittie <smcv@collabora.com>
Fri, 24 Nov 2017 13:16:17 +0000 (13:16 +0000)
We assert that every watch is invalidated before it is freed, but
in some OOM code paths this didn't happen.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=89104
(cherry picked from commit 1ce34beef85a7a0b3c25890837e3a72f8bdac1f0)

dbus/dbus-server-socket.c

index d716f50..61e143b 100644 (file)
@@ -358,6 +358,7 @@ _dbus_server_new_for_socket (DBusSocket       *fds,
     {
       if (socket_server->watch[i] != NULL)
         {
+          _dbus_watch_invalidate (socket_server->watch[i]);
           _dbus_watch_unref (socket_server->watch[i]);
           socket_server->watch[i] = NULL;
         }