mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-05 05:18:00 +02:00
corrupt test: close connection before releasing GSocket
GSocket takes responsibility for closing the fd, and there doesn't seem to be any way to tell it not to. When this test is adapted to run under DBusLoop as an alternative to dbus-glib, that becomes a problem, because DBusLoop/DBusSocketSetEpoll do not tolerate that. Work around it. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68852 Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
This commit is contained in:
parent
cae26e9fac
commit
ce334cb0d6
1 changed files with 16 additions and 0 deletions
|
|
@ -246,6 +246,16 @@ test_corrupt (Fixture *f,
|
|||
"/org/freedesktop/DBus/Local");
|
||||
|
||||
dbus_message_unref (incoming);
|
||||
|
||||
/* Free the DBusConnection before the GSocket, because GSocket is
|
||||
* going to close our fd. GSocket tolerates closing an already-closed
|
||||
* fd, whereas DBusLoop + DBusSocketSetEpoll doesn't. On Unix
|
||||
* we could use dup() but that isn't portable to Windows :-(
|
||||
*/
|
||||
dbus_connection_close (f->server_conn);
|
||||
dbus_connection_unref (f->server_conn);
|
||||
f->server_conn = NULL;
|
||||
|
||||
g_object_unref (socket);
|
||||
}
|
||||
|
||||
|
|
@ -325,6 +335,12 @@ test_byte_order (Fixture *f,
|
|||
"/org/freedesktop/DBus/Local");
|
||||
|
||||
dbus_message_unref (message);
|
||||
|
||||
/* Free the DBusConnection before the GSocket, as above. */
|
||||
dbus_connection_close (f->server_conn);
|
||||
dbus_connection_unref (f->server_conn);
|
||||
f->server_conn = NULL;
|
||||
|
||||
g_object_unref (socket);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue