summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2020-03-11 13:14:45 +0000
committerSimon McVittie <smcv@collabora.com>2020-03-11 13:17:43 +0000
commitab705c14cbf284f856d5725eb4843f618f5acdcc (patch)
tree04e9da97616af0b408e30ecc3eab2236428df095
parent041cadb73836d1add99daa1c4847a5033fb32d61 (diff)
downloaddbus-mr143-refactoring.tar.gz
sysdeps-win: Refactor cleanup of struct addrinfo during connect()mr143-refactoring
As suggested on !143. Instead of remembering to free it in every error condition, let's move its cleanup to the "out" phase so that it's done every time. Change the iterator variable tmp to be const so that it's obvious we aren't meant to free that too. Signed-off-by: Simon McVittie <smcv@collabora.com>
-rw-r--r--dbus/dbus-sysdeps-win.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c
index 30cff66d..de7d4d59 100644
--- a/dbus/dbus-sysdeps-win.c
+++ b/dbus/dbus-sysdeps-win.c
@@ -1509,7 +1509,8 @@ _dbus_connect_tcp_socket_with_nonce (const char *host,
DBusSocket fd = DBUS_SOCKET_INIT;
int res;
struct addrinfo hints;
- struct addrinfo *ai, *tmp;
+ struct addrinfo *ai = NULL;
+ const struct addrinfo *tmp;
DBusError *connect_error;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
@@ -1562,7 +1563,6 @@ _dbus_connect_tcp_socket_with_nonce (const char *host,
_dbus_error_from_errno (saved_errno),
"Failed to open socket: %s",
_dbus_strerror (saved_errno));
- freeaddrinfo(ai);
_dbus_socket_invalidate (&fd);
goto out;
}
@@ -1578,7 +1578,6 @@ _dbus_connect_tcp_socket_with_nonce (const char *host,
if (connect_error == NULL)
{
- freeaddrinfo(ai);
_DBUS_SET_OOM (error);
goto out;
}
@@ -1593,7 +1592,6 @@ _dbus_connect_tcp_socket_with_nonce (const char *host,
{
dbus_error_free (connect_error);
dbus_free (connect_error);
- freeaddrinfo(ai);
_DBUS_SET_OOM (error);
goto out;
}
@@ -1604,7 +1602,6 @@ _dbus_connect_tcp_socket_with_nonce (const char *host,
break;
}
- freeaddrinfo(ai);
if (!_dbus_socket_is_valid (fd))
{
@@ -1639,6 +1636,9 @@ _dbus_connect_tcp_socket_with_nonce (const char *host,
}
out:
+ if (ai != NULL)
+ freeaddrinfo (ai);
+
while ((connect_error = _dbus_list_pop_first (&connect_errors)))
{
dbus_error_free (connect_error);