From dfeadf82c2b428d1c7f59d4b573588095630d99e Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 12 Nov 2025 19:11:33 -0600 Subject: [PATCH] chardev: Reuse channel's cached local address MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Directly accessing the fd member of a QIOChannelSocket is an undesirable leaky abstraction. What's more, grabbing that fd merely to force an eventual call to getsockname() can be wasteful, since the channel is often able to return its cached local name. Reported-by: Daniel P. Berrangé Signed-off-by: Eric Blake Message-ID: <20251113011625.878876-23-eblake@redhat.com> Reviewed-by: Daniel P. Berrangé --- chardev/char-socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 62852e3caf..ec4116ade4 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -1255,7 +1255,7 @@ static int qmp_chardev_open_socket_server(Chardev *chr, } qapi_free_SocketAddress(s->addr); - s->addr = socket_local_address(s->listener->sioc[0]->fd, errp); + s->addr = qio_channel_socket_get_local_address(s->listener->sioc[0], errp); skip_listen: update_disconnected_filename(s); -- 2.47.3