From 61391e50f3b2aab65f478a48dc05343b6d432cef Mon Sep 17 00:00:00 2001 From: ut004615 Date: Fri, 28 Jul 2023 10:26:40 +0800 Subject: [PATCH] Fix memory leaks detected by valgrind (cherry picked from commit 4e9dbc667aeabdcfdcc2f11cd330241d075d7a86) --- ...ix-memory-leaks-detected-by-valgrind.patch | 79 +++++++++++++++++++ gvfs.spec | 6 +- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 0001-Fix-memory-leaks-detected-by-valgrind.patch diff --git a/0001-Fix-memory-leaks-detected-by-valgrind.patch b/0001-Fix-memory-leaks-detected-by-valgrind.patch new file mode 100644 index 0000000..b6ff436 --- /dev/null +++ b/0001-Fix-memory-leaks-detected-by-valgrind.patch @@ -0,0 +1,79 @@ +From e3b401e8dfd6bfb668113fe0095a3e05566df068 Mon Sep 17 00:00:00 2001 +From: houlifei +Date: Thu, 20 Jul 2023 17:49:16 +0800 +Subject: [PATCH] Fix memory leaks detected by valgrind + +--- + common/gvfsmountinfo.c | 1 + + daemon/gvfsbackendnetwork.c | 10 ++-------- + daemon/gvfsdaemon.c | 3 +++ + monitor/gphoto2/ggphoto2volumemonitor.c | 1 + + 4 files changed, 7 insertions(+), 8 deletions(-) + +diff --git a/common/gvfsmountinfo.c b/common/gvfsmountinfo.c +index c3f31af..34a5450 100644 +--- a/common/gvfsmountinfo.c ++++ b/common/gvfsmountinfo.c +@@ -641,6 +641,7 @@ _g_find_file_insensitive_async (GFile *parent, + cancellable, + find_file_insensitive_exists_callback, task); + ++ g_object_unref (direct_file); //uos add for fixing memory leaks + + } + +diff --git a/daemon/gvfsbackendnetwork.c b/daemon/gvfsbackendnetwork.c +index 87cfec7..9f1905b 100644 +--- a/daemon/gvfsbackendnetwork.c ++++ b/daemon/gvfsbackendnetwork.c +@@ -902,19 +902,13 @@ g_vfs_backend_network_init (GVfsBackendNetwork *network_backend) + network_backend->smb_settings = g_settings_new ("org.gnome.system.smb"); + + current_workgroup = g_settings_get_string (network_backend->smb_settings, "workgroup"); +- +- if (current_workgroup == NULL || +- current_workgroup[0] == 0) +- /* it's okay if current_workgroup is null here, +- * it's checked before the NetworkFile is added anyway. */ +- network_backend->current_workgroup = NULL; +- else +- network_backend->current_workgroup = current_workgroup; ++ network_backend->current_workgroup = current_workgroup; + + g_signal_connect (network_backend->smb_settings, + "change-event", + G_CALLBACK (smb_settings_change_event_cb), + network_backend); ++ g_free (current_workgroup); // uos add for fixing memory leaks + } + + if (network_backend->have_dnssd) +diff --git a/daemon/gvfsdaemon.c b/daemon/gvfsdaemon.c +index a6d6236..72bdea1 100644 +--- a/daemon/gvfsdaemon.c ++++ b/daemon/gvfsdaemon.c +@@ -145,6 +145,9 @@ g_vfs_daemon_finalize (GObject *object) + + daemon = G_VFS_DAEMON (object); + ++ if (daemon->thread_pool != NULL) ++ g_thread_pool_free (daemon->thread_pool, TRUE, TRUE); // uos add for fixing memory leaks ++ + /* There may be some jobs outstanding if we've been force unmounted. */ + if (daemon->jobs) + g_warning ("daemon->jobs != NULL when finalizing daemon!"); +diff --git a/monitor/gphoto2/ggphoto2volumemonitor.c b/monitor/gphoto2/ggphoto2volumemonitor.c +index 54dec6e..e689b41 100644 +--- a/monitor/gphoto2/ggphoto2volumemonitor.c ++++ b/monitor/gphoto2/ggphoto2volumemonitor.c +@@ -331,6 +331,7 @@ gudev_coldplug_cameras (GGPhoto2VolumeMonitor *monitor) + if (g_udev_device_has_property (d, "ID_GPHOTO2")) + gudev_add_camera (monitor, d, FALSE); + } ++ g_list_free_full(usb_devices, g_object_unref); // uos add for fixing memory leaks + } + + static GObject * +-- +2.33.0 + diff --git a/gvfs.spec b/gvfs.spec index 870ed91..f5f8fd2 100644 --- a/gvfs.spec +++ b/gvfs.spec @@ -23,12 +23,13 @@ Name: gvfs Version: 1.46.2 -Release: 2 +Release: 3 Summary: gvfs is a backends for the gio framework in GLib License: GPLv3 and LGPLv2+ and BSD and MPLv2.0 URL: https://wiki.gnome.org/Projects/gvfs Source0: https://download.gnome.org/sources/gvfs/1.46/gvfs-%{version}.tar.xz +Patch0: 0001-Fix-memory-leaks-detected-by-valgrind.patch BuildRequires: /usr/bin/ssh git pkgconfig fuse3 BuildRequires: meson gcc pkgconfig pkgconfig(glib-2.0) >= %{glib2_version} pkgconfig(dbus-glib-1) pkgconfig(gcr-3) @@ -217,6 +218,9 @@ killall -USR1 gvfsd >&/dev/null || : %{_mandir}/man1/gvfsd-fuse.1* %changelog +* Fri Jul 28 2023 haomimi - 1.46.2-3 +- Fix memory leaks detected by valgrind + * Wed Jul 21 2021 yushaogui - 1.46.2-2 - Delete a buildrequires for gdb -- Gitee