Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package glib2 for openSUSE:Factory checked 
in at 2022-08-30 14:48:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/glib2 (Old)
 and      /work/SRC/openSUSE:Factory/.glib2.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "glib2"

Tue Aug 30 14:48:12 2022 rev:255 rq:999786 version:2.72.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/glib2/glib2.changes      2022-07-09 
16:59:20.732463885 +0200
+++ /work/SRC/openSUSE:Factory/.glib2.new.2083/glib2.changes    2022-08-30 
14:48:13.535926645 +0200
@@ -1,0 +2,13 @@
+Thu Aug 25 11:24:35 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com>
+
+- Add 99783e0408f8ae9628d2c7a30eb99806087da711.patch:
+  gsocketclient: Fix passing NULL to g_task_get_cancellable().
+  Fix a regression from commit abddb42d14, where it could pass
+  `NULL` to `g_task_get_cancellable()`, triggering a critical
+  warning. This could happen because the lifetime of `data->task`
+  is not as long as the lifetime of the `ConnectionAttempt`, but
+  the code assumed it was.
+  Fix the problem by keeping a strong ref to that `GCancellable`
+  around until the `ConnectionAttempt` is finished being destroyed.
+
+-------------------------------------------------------------------

New:
----
  99783e0408f8ae9628d2c7a30eb99806087da711.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ glib2.spec ++++++
--- /var/tmp/diff_new_pack.tlx7qz/_old  2022-08-30 14:48:14.207928509 +0200
+++ /var/tmp/diff_new_pack.tlx7qz/_new  2022-08-30 14:48:14.223928554 +0200
@@ -58,6 +58,8 @@
 Patch3:         glib2-dbus-socket-path.patch
 # PATCH-FIX-OPENSUSE glib2-gdbus-codegen-version.patch  o...@aepfle.de -- 
Remove version string from files generated by gdbus-codegen
 Patch4:         glib2-gdbus-codegen-version.patch
+# PATCH-FIX-UPSTREAM commit/99783e0408f8ae9628d2c7a30eb99806087da711.patch -- 
gsocketclient: Fix passing NULL to g_task_get_cancellable()
+Patch5:         
https://gitlab.gnome.org/GNOME/glib/-/commit/99783e0408f8ae9628d2c7a30eb99806087da711.patch
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
@@ -260,6 +262,7 @@
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
 cp -a %{SOURCE1} %{SOURCE2} %{SOURCE5} .
 cp -a %{SOURCE4} gnome_defaults.conf
 # replace /usr/bin/env shebangs

++++++ 99783e0408f8ae9628d2c7a30eb99806087da711.patch ++++++
>From 99783e0408f8ae9628d2c7a30eb99806087da711 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithn...@endlessos.org>
Date: Tue, 12 Jul 2022 16:07:23 +0100
Subject: [PATCH] gsocketclient: Fix passing NULL to g_task_get_cancellable()

Fix a regression from commit abddb42d14, where it could pass `NULL` to
`g_task_get_cancellable()`, triggering a critical warning. This could
happen because the lifetime of `data->task` is not as long as the
lifetime of the `ConnectionAttempt`, but the code assumed it was.

Fix the problem by keeping a strong ref to that `GCancellable` around
until the `ConnectionAttempt` is finished being destroyed.

Signed-off-by: Philip Withnall <pwithn...@endlessos.org>

Fixes: #2687
---
 gio/gsocketclient.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c
index cd5aa074a1..8bcbdfa85d 100644
--- a/gio/gsocketclient.c
+++ b/gio/gsocketclient.c
@@ -1508,6 +1508,7 @@ typedef struct
   GSocketClientAsyncConnectData *data; /* unowned */
   GSource *timeout_source;
   GCancellable *cancellable;
+  GCancellable *task_cancellable;  /* (owned); this is equal to 
g_task_get_cancellable (ConnectionAttempt.data->task), but with a longer 
lifetime */
   gulong cancelled_id;
   grefcount ref;
 } ConnectionAttempt;
@@ -1536,7 +1537,8 @@ connection_attempt_unref (gpointer pointer)
       g_clear_object (&attempt->address);
       g_clear_object (&attempt->socket);
       g_clear_object (&attempt->connection);
-      g_cancellable_disconnect (g_task_get_cancellable (attempt->data->task), 
attempt->cancelled_id);
+      g_cancellable_disconnect (attempt->task_cancellable, 
attempt->cancelled_id);
+      g_clear_object (&attempt->task_cancellable);
       attempt->cancelled_id = 0;
       g_clear_object (&attempt->cancellable);
       g_clear_object (&attempt->proxy_addr);
@@ -2031,9 +2033,12 @@ g_socket_client_enumerator_callback (GObject      
*object,
   data->connection_attempts = g_slist_append (data->connection_attempts, 
attempt);
 
   if (g_task_get_cancellable (data->task))
-    attempt->cancelled_id =
-        g_cancellable_connect (g_task_get_cancellable (data->task), G_CALLBACK 
(on_connection_cancelled),
-                               g_object_ref (attempt->cancellable), 
g_object_unref);
+    {
+      attempt->task_cancellable = g_object_ref (g_task_get_cancellable 
(data->task));
+      attempt->cancelled_id =
+          g_cancellable_connect (attempt->task_cancellable, G_CALLBACK 
(on_connection_cancelled),
+                                 g_object_ref (attempt->cancellable), 
g_object_unref);
+    }
 
   g_socket_connection_set_cached_remote_address ((GSocketConnection 
*)attempt->connection, address);
   g_debug ("GSocketClient: Starting TCP connection attempt");
-- 
GitLab

Reply via email to