[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