[X2Go-Commits] [libx2goclient] 01/09: src/x2goclient-network-ssh.c: fix sockaddr_ho definition and usage.
git-admin at x2go.org
git-admin at x2go.org
Sat Apr 4 17:55:26 CEST 2020
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository libx2goclient.
commit dc2e6b8dce9d6c27322d92239b5915eaf1f33222
Author: Mihai Moldovan <ionic at ionic.de>
Date: Thu Mar 26 11:04:25 2020 +0100
src/x2goclient-network-ssh.c: fix sockaddr_ho definition and usage.
Typedeffing a struct to the same name might (rightfully) confuse
compilers and lead to undefined behavior.
Let's avoid this and choose a temporary name for the actual struct.
---
src/x2goclient-network-ssh.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c
index 4a13184..a3762a1 100644
--- a/src/x2goclient-network-ssh.c
+++ b/src/x2goclient-network-ssh.c
@@ -77,7 +77,7 @@ GPtrArray* x2goclient_network_options_ssh_to_array (X2GoClientNetworkOptionsSSH
* Custom sockaddr structure used to represent socket endpoints based on a FQDN
* or ssh_config-specific host alias.
*/
-typedef struct sockaddr_ho {
+typedef struct sockaddr_ho_ {
sa_family_t sho_family;
in_port_t sho_port;
char sho_addr[256];
@@ -466,7 +466,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GStrin
* FIXME: for now only the size, but maybe we should do extra checks on the
* name.
*/
- const gsize max_len = (sizeof (((struct sockaddr_ho*)(NULL))->sho_addr) - 1);
+ const gsize max_len = (sizeof (((sockaddr_ho*)(NULL))->sho_addr) - 1);
if (max_len < address->len) {
g_set_error (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV, "Unable to parse FQDN or alias pseudo-address: name too long, expected at most %" G_GSIZE_FORMAT " bytes, got %" G_GSIZE_FORMAT " bytes.", max_len, address->len);
int_err = TRUE;
@@ -498,10 +498,10 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GStrin
* Parsed everything successfully so far, so create native socket address
* object.
*/
- struct sockaddr_ho tmp_sockaddr = { AF_HOST, };
+ sockaddr_ho tmp_sockaddr = { AF_HOST, };
g_strlcpy (tmp_sockaddr.sho_addr, address->str, max_len + 1);
tmp_sockaddr.sho_port = port;
- ret = g_native_socket_address_new (&tmp_sockaddr, sizeof (struct sockaddr_ho));
+ ret = g_native_socket_address_new (&tmp_sockaddr, sizeof (sockaddr_ho));
}
g_string_free (work_sockspec, TRUE);
@@ -707,13 +707,13 @@ static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent
else if (G_IS_NATIVE_SOCKET_ADDRESS (sock_addr)) {
GNativeSocketAddress *native_sock_addr = G_NATIVE_SOCKET_ADDRESS (sock_addr);
- g_assert (sizeof (struct sockaddr_ho) == g_socket_address_get_native_size (sock_addr));
+ g_assert (sizeof (sockaddr_ho) == g_socket_address_get_native_size (sock_addr));
- struct sockaddr_ho tmp_sockaddr = { 0 };
+ sockaddr_ho tmp_sockaddr = { 0 };
/* Fetch data. */
GError *tmp_err = NULL;
- g_socket_address_to_native (sock_addr, &tmp_sockaddr, sizeof (struct sockaddr_ho), &tmp_err);
+ g_socket_address_to_native (sock_addr, &tmp_sockaddr, sizeof (sockaddr_ho), &tmp_err);
if (tmp_err) {
g_set_error (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_CONNECT_NATIVE_FETCH, "Unable to convert native socket address object to sockaddr struct: %s", tmp_err->message);
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
More information about the x2go-commits
mailing list