[glib/mcatanzaro/#2211: 1/2] gsocketclient: Crash on error if error is missing




commit 4525c9ba8d7c92ed6f15d08591ab185631405e3b
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Mon Oct 5 12:32:32 2020 -0500

    gsocketclient: Crash on error if error is missing
    
    We should never return unknown errors to the application. This would be
    a glib bug.
    
    I don't think it's currently possible to hit these cases, so asserts
    should be OK. For this to happen, either (a) a GSocketAddressEnumerator
    would have to return NULL on its first enumeration, without returning an
    error, or (b) there would have to be a bug in our GSocketClient logic.
    Either way, if such a bug were to exist, it would be better to surface
    it rather than hide it.
    
    These changes are actually going to be effectively undone in a
    subsequent commit, as I'm refactoring the error handling, but the commit
    history is a bit nicer with two separate commits, so let's go with two.

 gio/gsocketclient.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c
index a7ea240fe..22e813b03 100644
--- a/gio/gsocketclient.c
+++ b/gio/gsocketclient.c
@@ -1044,8 +1044,9 @@ g_socket_client_connect (GSocketClient       *client,
              g_propagate_error (error, last_error);
            }
          else
-            g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                                 _("Unknown error on connect"));
+           {
+              g_assert_not_reached ();
+           }
          break;
        }
 
@@ -1870,10 +1871,9 @@ g_socket_client_enumerator_callback (GObject      *object,
               error = data->last_error;
               data->last_error = NULL;
             }
-          else if (!error)
+          else
             {
-              g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                _("Unknown error on connect"));
+              g_assert (error);
             }
 
           complete_connection_with_error (data, error);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]