[Telepathy-commits] [telepathy-salut/master] Fix error handling to not leak Gerrors

Sjoerd Simons sjoerd.simons at collabora.co.uk
Mon Nov 3 04:35:31 PST 2008


---
 lib/gibber/gibber-listener.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/gibber/gibber-listener.c b/lib/gibber/gibber-listener.c
index 98a9ee5..85e29e2 100644
--- a/lib/gibber/gibber-listener.c
+++ b/lib/gibber/gibber-listener.c
@@ -338,10 +338,9 @@ listen_tcp_af (GibberListener *listener, int port,
           gboolean fatal = !g_error_matches (terror, GIBBER_LISTENER_ERROR,
               GIBBER_LISTENER_ERROR_FAMILY_NOT_SUPPORTED);
 
-          if (error != NULL)
-            *error = terror;
-          else
-            g_error_free (terror);
+          /* let error always point to the last error */
+          g_clear_error (error);
+          g_propagate_error (error, terror);
 
           if (fatal)
               goto error;
@@ -353,6 +352,9 @@ listen_tcp_af (GibberListener *listener, int port,
   if (priv->listeners == NULL)
     goto error;
 
+  /* There was an error at some point, but it was not fatal. ignore it */
+  g_clear_error (error);
+
   if (*error != NULL)
     {
       /* There was an error at some point, but not fatal */
-- 
1.5.6.5




More information about the Telepathy-commits mailing list