commit glib2 for openSUSE:Factory
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.lie@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 olaf@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/99783e0408f8ae9628d2c7a30eb9980... 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 <pwithnall@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 <pwithnall@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
participants (1)
-
Source-Sync