[X2Go-Commits] [libx2goclient] 09/09: src/x2goclient-network-ssh.c: fix error handling in parse_sockspec () family.

git-admin at x2go.org git-admin at x2go.org
Thu Aug 15 17:40:10 CEST 2019


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository libx2goclient.

commit 657b2a0177b3edef8b127f0c371f884f3b612128
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Thu Aug 15 17:39:38 2019 +0200

    src/x2goclient-network-ssh.c: fix error handling in parse_sockspec () family.
---
 src/x2goclient-network-ssh.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c
index d39cdd6..7c9939c 100644
--- a/src/x2goclient-network-ssh.c
+++ b/src/x2goclient-network-ssh.c
@@ -206,6 +206,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString *
         *tmp_end = NULL;
   GString *address = NULL;
   guint16 port = 0;
+  gboolean int_err = FALSE;
 
   if (want_v6) {
     /*
@@ -241,6 +242,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString *
       }
       else {
         g_set_error_literal (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, "Found starting bracket, but no matching ending bracket.");
+        int_err = TRUE;
       }
     }
     else {
@@ -265,7 +267,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString *
     }
   }
 
-  if (!err) {
+  if (!(int_err)) {
     gboolean is_v6 = FALSE,
              is_v4 = FALSE;
     char binary_rep[128] = { 0 };
@@ -332,9 +334,11 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString *
         if (tmp_err) {
           if (want_v6) {
             g_set_error (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, "Unable to parse IPv6 address: %s", tmp_err->message);
+            int_err = TRUE;
           }
           else {
             g_set_error (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV4_CONV, "Unable to parse IPv4 address: %s", tmp_err->message);
+            int_err = TRUE;
           }
           g_clear_error (&tmp_err);
         }
@@ -342,7 +346,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString *
     }
   }
 
-  if (!err) {
+  if (!(int_err)) {
     /*
      * Parsed everything successfully so far, so create IP socket address
      * object.
@@ -371,6 +375,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GStrin
         *tmp_end = NULL;
   GString *address = NULL;
   guint16 port = 0;
+  gboolean int_err = FALSE;
 
   /*
    * For FQDN or alias addresses (like for IPv4 addresses), we'll accept any
@@ -396,9 +401,10 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GStrin
   const gsize max_len = (sizeof (((struct sockaddr_ho*)(NULL))->sho_addr) - 1);
   if (max_len < address->len) {
     g_set_error (err, 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;
   }
 
-  if (!err) {
+  if (!(int_err)) {
     if (tmp_end) {
       /*
        * No encapsulation whatsoever, so the colon must be at the next
@@ -414,11 +420,12 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GStrin
       if (tmp_err) {
         g_set_error (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV, "Unable to parse FQDN or alias pseudo-address: %s", tmp_err->message);
         g_clear_error (&tmp_err);
+        int_err = TRUE;
       }
     }
   }
 
-  if (!err) {
+  if (!(int_err)) {
     /*
      * Parsed everything successfully so far, so create native socket address
      * object.

--
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