From: Marc-André Lureau Date: Tue, 8 Feb 2022 13:15:05 +0000 (+0400) Subject: dbus: make _dbus_close_socket() take DBusSocket* X-Git-Tag: dbus-1.15.0~26^2~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7d20a3c6049f96f396ac757a6954554dfb6452c8;p=thirdparty%2Fdbus.git dbus: make _dbus_close_socket() take DBusSocket* This will allow to invalidate the socket in the following commit. Signed-off-by: Marc-André Lureau --- diff --git a/bus/dispatch.c b/bus/dispatch.c index c3019b1e8..3f9852619 100644 --- a/bus/dispatch.c +++ b/bus/dispatch.c @@ -5181,9 +5181,9 @@ bus_unix_fds_passing_test (const char *test_data_dir_cstr) DBUS_TYPE_INVALID)) _dbus_test_fatal ("Failed to attach fds."); - if (!_dbus_close_socket (one[0], &error)) + if (!_dbus_close_socket (&one[0], &error)) _dbus_test_fatal ("Failed to close pipe #1 "); - if (!_dbus_close_socket (two[0], &error)) + if (!_dbus_close_socket (&two[0], &error)) _dbus_test_fatal ("Failed to close pipe #2 "); if (!(dbus_connection_can_send_type(foo, DBUS_TYPE_UNIX_FD))) @@ -5250,9 +5250,9 @@ bus_unix_fds_passing_test (const char *test_data_dir_cstr) if (read(two[1].fd, &r, 1) != 1 || r != 'Z') _dbus_test_fatal ("Failed to read value from pipe."); - if (!_dbus_close_socket (one[1], &error)) + if (!_dbus_close_socket (&one[1], &error)) _dbus_test_fatal ("Failed to close pipe #1 "); - if (!_dbus_close_socket (two[1], &error)) + if (!_dbus_close_socket (&two[1], &error)) _dbus_test_fatal ("Failed to close pipe #2 "); _dbus_verbose ("Disconnecting foo\n"); diff --git a/bus/main.c b/bus/main.c index 5f756d5c9..5614f244f 100644 --- a/bus/main.c +++ b/bus/main.c @@ -387,10 +387,10 @@ close_reload_pipe (DBusWatch **watch) _dbus_watch_unref (*watch); *watch = NULL; - _dbus_close_socket (reload_pipe[RELOAD_READ_END], NULL); + _dbus_close_socket (&reload_pipe[RELOAD_READ_END], NULL); _dbus_socket_invalidate (&reload_pipe[RELOAD_READ_END]); - _dbus_close_socket (reload_pipe[RELOAD_WRITE_END], NULL); + _dbus_close_socket (&reload_pipe[RELOAD_WRITE_END], NULL); _dbus_socket_invalidate (&reload_pipe[RELOAD_WRITE_END]); } #endif /* DBUS_UNIX */ diff --git a/dbus/dbus-nonce.c b/dbus/dbus-nonce.c index ef5eb617f..fe86fb123 100644 --- a/dbus/dbus-nonce.c +++ b/dbus/dbus-nonce.c @@ -194,7 +194,7 @@ _dbus_accept_with_noncefile (DBusSocket listen_fd, const DBusNonceFile *noncefil if (do_check_nonce(fd, &nonce, NULL) != TRUE) { _dbus_verbose ("nonce check failed. Closing socket.\n"); - _dbus_close_socket(fd, NULL); + _dbus_close_socket (&fd, NULL); _dbus_socket_invalidate (&fd); goto out; } diff --git a/dbus/dbus-server-debug-pipe.c b/dbus/dbus-server-debug-pipe.c index c396bc828..4f9f4ffbc 100644 --- a/dbus/dbus-server-debug-pipe.c +++ b/dbus/dbus-server-debug-pipe.c @@ -260,8 +260,8 @@ _dbus_transport_debug_pipe_new (const char *server_name, NULL, &address); if (client_transport == NULL) { - _dbus_close_socket (client_fd, NULL); - _dbus_close_socket (server_fd, NULL); + _dbus_close_socket (&client_fd, NULL); + _dbus_close_socket (&server_fd, NULL); dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL); _dbus_string_free (&address); return NULL; @@ -276,7 +276,7 @@ _dbus_transport_debug_pipe_new (const char *server_name, if (server_transport == NULL) { _dbus_transport_unref (client_transport); - _dbus_close_socket (server_fd, NULL); + _dbus_close_socket (&server_fd, NULL); dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL); return NULL; } diff --git a/dbus/dbus-server-socket.c b/dbus/dbus-server-socket.c index bc5e3a9d3..3bab5960b 100644 --- a/dbus/dbus-server-socket.c +++ b/dbus/dbus-server-socket.c @@ -103,7 +103,7 @@ handle_new_client_fd_and_unlock (DBusServer *server, transport = _dbus_transport_new_for_socket (client_fd, &server->guid_hex, NULL); if (transport == NULL) { - _dbus_close_socket (client_fd, NULL); + _dbus_close_socket (&client_fd, NULL); SERVER_UNLOCK (server); return FALSE; } @@ -243,7 +243,7 @@ socket_disconnect (DBusServer *server) if (_dbus_socket_is_valid (socket_server->fds[i])) { - _dbus_close_socket (socket_server->fds[i], NULL); + _dbus_close_socket (&socket_server->fds[i], NULL); _dbus_socket_invalidate (&socket_server->fds[i]); } } @@ -513,7 +513,7 @@ failed: if (listen_fds != NULL) { for (i = 0; i < nlisten_fds; i++) - _dbus_close_socket (listen_fds[i], NULL); + _dbus_close_socket (&listen_fds[i], NULL); dbus_free (listen_fds); } diff --git a/dbus/dbus-server-unix.c b/dbus/dbus-server-unix.c index c7ace2bca..1471cd823 100644 --- a/dbus/dbus-server-unix.c +++ b/dbus/dbus-server-unix.c @@ -258,7 +258,7 @@ _dbus_server_listen_platform_specific (DBusAddressEntry *entry, systemd_err: for (i = 0; i < n; i++) { - _dbus_close_socket (fds[i], NULL); + _dbus_close_socket (&fds[i], NULL); } dbus_free (fds); _dbus_string_free (&address); @@ -372,7 +372,7 @@ _dbus_server_new_for_domain_socket (const char *path, return server; failed_2: - _dbus_close_socket (listen_fd, NULL); + _dbus_close_socket (&listen_fd, NULL); failed_1: dbus_free (path_copy); failed_0: diff --git a/dbus/dbus-spawn-unix.c b/dbus/dbus-spawn-unix.c index f3577e706..fb5b4267d 100644 --- a/dbus/dbus-spawn-unix.c +++ b/dbus/dbus-spawn-unix.c @@ -560,7 +560,7 @@ close_socket_to_babysitter (DBusBabysitter *sitter) if (sitter->socket_to_babysitter.fd >= 0) { - _dbus_close_socket (sitter->socket_to_babysitter, NULL); + _dbus_close_socket (&sitter->socket_to_babysitter, NULL); sitter->socket_to_babysitter.fd = -1; } } diff --git a/dbus/dbus-spawn-win.c b/dbus/dbus-spawn-win.c index 61961901d..c879688db 100644 --- a/dbus/dbus-spawn-win.c +++ b/dbus/dbus-spawn-win.c @@ -160,7 +160,7 @@ close_socket_to_babysitter (DBusBabysitter *sitter) if (sitter->socket_to_babysitter.sock != INVALID_SOCKET) { - _dbus_close_socket (sitter->socket_to_babysitter, NULL); + _dbus_close_socket (&sitter->socket_to_babysitter, NULL); sitter->socket_to_babysitter.sock = INVALID_SOCKET; } } @@ -188,7 +188,7 @@ _dbus_babysitter_unref (DBusBabysitter *sitter) if (sitter->socket_to_main.sock != INVALID_SOCKET) { - _dbus_close_socket (sitter->socket_to_main, NULL); + _dbus_close_socket (&sitter->socket_to_main, NULL); sitter->socket_to_main.sock = INVALID_SOCKET; } diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index a7856e778..152a3862f 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -305,10 +305,13 @@ _dbus_open_unix_socket (int *fd, * @returns #FALSE if error is set */ dbus_bool_t -_dbus_close_socket (DBusSocket fd, +_dbus_close_socket (DBusSocket *fd, DBusError *error) { - return _dbus_close (fd.fd, error); + _dbus_assert (fd != NULL); + _DBUS_ASSERT_ERROR_IS_CLEAR (error); + + return _dbus_close (fd->fd, error); } /** diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c index 9b8d1889a..445662148 100644 --- a/dbus/dbus-sysdeps-win.c +++ b/dbus/dbus-sysdeps-win.c @@ -490,13 +490,14 @@ _dbus_write_socket (DBusSocket fd, * @returns #FALSE if error set */ dbus_bool_t -_dbus_close_socket (DBusSocket fd, - DBusError *error) +_dbus_close_socket (DBusSocket *fd, + DBusError *error) { + _dbus_assert (fd != NULL); _DBUS_ASSERT_ERROR_IS_CLEAR (error); again: - if (closesocket (fd.sock) == SOCKET_ERROR) + if (closesocket (fd->sock) == SOCKET_ERROR) { DBUS_SOCKET_SET_ERRNO (); @@ -505,10 +506,10 @@ _dbus_close_socket (DBusSocket fd, dbus_set_error (error, _dbus_error_from_errno (errno), "Could not close socket: socket=%Iu, , %s", - fd.sock, _dbus_strerror_from_errno ()); + fd->sock, _dbus_strerror_from_errno ()); return FALSE; } - _dbus_verbose ("socket=%Iu, \n", fd.sock); + _dbus_verbose ("socket=%Iu, \n", fd->sock); return TRUE; } diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h index 0e51b32c6..887a0ce6d 100644 --- a/dbus/dbus-sysdeps.h +++ b/dbus/dbus-sysdeps.h @@ -212,7 +212,7 @@ dbus_bool_t _dbus_set_socket_nonblocking (DBusSocket fd, DBusError *error); DBUS_PRIVATE_EXPORT -dbus_bool_t _dbus_close_socket (DBusSocket fd, +dbus_bool_t _dbus_close_socket (DBusSocket *fd, DBusError *error); DBUS_PRIVATE_EXPORT int _dbus_read_socket (DBusSocket fd, diff --git a/dbus/dbus-transport-socket.c b/dbus/dbus-transport-socket.c index fa1307bd1..37560b117 100644 --- a/dbus/dbus-transport-socket.c +++ b/dbus/dbus-transport-socket.c @@ -1042,7 +1042,7 @@ socket_disconnect (DBusTransport *transport) free_watches (transport); - _dbus_close_socket (socket_transport->fd, NULL); + _dbus_close_socket (&socket_transport->fd, NULL); _dbus_socket_invalidate (&socket_transport->fd); } @@ -1430,7 +1430,7 @@ _dbus_transport_new_for_tcp_socket (const char *host, if (transport == NULL) { dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL); - _dbus_close_socket (fd, NULL); + _dbus_close_socket (&fd, NULL); _dbus_socket_invalidate (&fd); } diff --git a/dbus/dbus-transport-unix.c b/dbus/dbus-transport-unix.c index 30c3ba44a..99822fbf1 100644 --- a/dbus/dbus-transport-unix.c +++ b/dbus/dbus-transport-unix.c @@ -103,7 +103,7 @@ _dbus_transport_new_for_domain_socket (const char *path, return transport; failed_1: - _dbus_close_socket (fd, NULL); + _dbus_close_socket (&fd, NULL); failed_0: _dbus_string_free (&address); return NULL; @@ -203,7 +203,7 @@ _dbus_transport_new_for_exec (const char *path, failed: if (fd.fd >= 0) - _dbus_close_socket (fd, NULL); + _dbus_close_socket (&fd, NULL); _dbus_string_free (&address); return NULL;