Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libcloudproviders for openSUSE:Factory checked in at 2023-11-13 22:16:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libcloudproviders (Old) and /work/SRC/openSUSE:Factory/.libcloudproviders.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcloudproviders" Mon Nov 13 22:16:11 2023 rev:10 rq:1124866 version:0.3.5 Changes: -------- --- /work/SRC/openSUSE:Factory/libcloudproviders/libcloudproviders.changes 2023-09-20 13:21:28.718070415 +0200 +++ /work/SRC/openSUSE:Factory/.libcloudproviders.new.17445/libcloudproviders.changes 2023-11-13 22:16:37.818134814 +0100 @@ -1,0 +2,6 @@ +Thu Nov 9 16:51:15 UTC 2023 - Bjørn Lie <[email protected]> + +- Update to version 0.3.5: + + Avoid use after free with g_bus_get + +------------------------------------------------------------------- Old: ---- libcloudproviders-0.3.4.tar.xz New: ---- libcloudproviders-0.3.5.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libcloudproviders.spec ++++++ --- /var/tmp/diff_new_pack.G4AmIf/_old 2023-11-13 22:16:38.778170161 +0100 +++ /var/tmp/diff_new_pack.G4AmIf/_new 2023-11-13 22:16:38.778170161 +0100 @@ -19,7 +19,7 @@ %define _typelibdir %(pkg-config --variable=typelibdir gobject-introspection-1.0) %define _girdir %(pkg-config --variable=girdir gobject-introspection-1.0) Name: libcloudproviders -Version: 0.3.4 +Version: 0.3.5 Release: 0 Summary: Library/Client to integrate cloud storage providers License: LGPL-3.0-or-later ++++++ libcloudproviders-0.3.4.tar.xz -> libcloudproviders-0.3.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.4/CHANGELOG new/libcloudproviders-0.3.5/CHANGELOG --- old/libcloudproviders-0.3.4/CHANGELOG 2023-09-06 16:14:23.000000000 +0200 +++ new/libcloudproviders-0.3.5/CHANGELOG 2023-11-08 21:15:01.000000000 +0100 @@ -1,3 +1,7 @@ +0.3.5 +----- +* Avoid use after free with g_bus_get + 0.3.4 ----- * Re-release du to release tarball issue diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.4/meson.build new/libcloudproviders-0.3.5/meson.build --- old/libcloudproviders-0.3.4/meson.build 2023-09-06 16:14:23.000000000 +0200 +++ new/libcloudproviders-0.3.5/meson.build 2023-11-08 21:15:01.000000000 +0100 @@ -1,5 +1,5 @@ project ('libcloudproviders', 'c', - version: '0.3.4', + version: '0.3.5', meson_version: '>=0.54.0', license: 'LGPL3+', default_options: [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.4/src/cloudproviderscollector.c new/libcloudproviders-0.3.5/src/cloudproviderscollector.c --- old/libcloudproviders-0.3.4/src/cloudproviderscollector.c 2023-09-06 16:14:23.000000000 +0200 +++ new/libcloudproviders-0.3.5/src/cloudproviderscollector.c 2023-11-08 21:15:01.000000000 +0100 @@ -69,18 +69,22 @@ GAsyncResult *res, gpointer user_data) { - CloudProvidersCollector *self = CLOUD_PROVIDERS_COLLECTOR (user_data); - g_autoptr(GError) error = NULL; + CloudProvidersCollector *self; + g_autoptr(GError) error = NULL; + GDBusConnection *connection; - self->bus = g_bus_get_finish (res, &error); - if (error != NULL) + connection = g_bus_get_finish (res, &error); + if (error != NULL) { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - g_debug ("Error acquiring bus for cloud providers: %s", error->message); - return; + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_debug ("Error acquiring bus for cloud providers: %s", error->message); + return; } - update_cloud_providers (self); + /* The CloudProvidersCollector could be destroyed before arriving here */ + self = CLOUD_PROVIDERS_COLLECTOR (user_data); + self->bus = g_steal_pointer (&connection); + update_cloud_providers (self); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.4/src/cloudprovidersprovider.c new/libcloudproviders-0.3.5/src/cloudprovidersprovider.c --- old/libcloudproviders-0.3.4/src/cloudprovidersprovider.c 2023-09-06 16:14:23.000000000 +0200 +++ new/libcloudproviders-0.3.5/src/cloudprovidersprovider.c 2023-11-08 21:15:01.000000000 +0100 @@ -357,16 +357,20 @@ GAsyncResult *res, gpointer user_data) { - CloudProvidersProvider *self = CLOUD_PROVIDERS_PROVIDER (user_data); + CloudProvidersProvider *self; g_autoptr(GError) error = NULL; + GDBusObjectManager *manager; - self->manager = cloud_providers_dbus_object_manager_client_new_finish (res, &error); + manager = cloud_providers_dbus_object_manager_client_new_finish (res, &error); if (error != NULL) { g_printerr ("Error getting object manager client: %s", error->message); return; } + /* The CloudProvidersProvider could be destroyed before arriving here */ + self = CLOUD_PROVIDERS_PROVIDER (user_data); + self->manager = g_steal_pointer (&manager); g_signal_connect (self->manager, "notify::name-owner", G_CALLBACK (on_cloud_providers_object_manager_name_owner_changed), self); @@ -385,24 +389,28 @@ GAsyncResult *res, gpointer user_data) { - CloudProvidersProvider *self = CLOUD_PROVIDERS_PROVIDER (user_data); - g_autoptr(GError) error = NULL; + CloudProvidersProvider *self; + g_autoptr(GError) error = NULL; + GDBusConnection *connection; - self->bus = g_bus_get_finish (res, &error); - if (error != NULL) + connection = g_bus_get_finish (res, &error); + if (error != NULL) { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - g_debug ("Error acquiring bus for cloud provider: %s", error->message); - return; + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_debug ("Error acquiring bus for cloud provider: %s", error->message); + return; } - cloud_providers_dbus_object_manager_client_new (self->bus, - G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE, - self->manager_bus_name, - self->manager_object_path, - self->cancellable, - on_object_manager_created, - self); + /* The CloudProvidersProvider could be destroyed before arriving here */ + self = CLOUD_PROVIDERS_PROVIDER (user_data); + self->bus = g_steal_pointer (&connection); + cloud_providers_dbus_object_manager_client_new (self->bus, + G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE, + self->manager_bus_name, + self->manager_object_path, + self->cancellable, + on_object_manager_created, + self); } @@ -434,3 +442,4 @@ return self->accounts; } +
