[gnome-software/gnome-3-16] Only set the remote icon filename once
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/gnome-3-16] Only set the remote icon filename once
- Date: Mon, 11 May 2015 15:11:08 +0000 (UTC)
commit 885911ad4d4209b474650ef235238ad9dfbd6d2a
Author: Richard Hughes <richard hughsie com>
Date: Mon May 11 16:10:42 2015 +0100
Only set the remote icon filename once
We can hit a use-after-free where libsoup is using the old local filename.
src/plugins/gs-plugin-appstream.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/src/plugins/gs-plugin-appstream.c b/src/plugins/gs-plugin-appstream.c
index 17f5aa3..d3b0c4d 100644
--- a/src/plugins/gs-plugin-appstream.c
+++ b/src/plugins/gs-plugin-appstream.c
@@ -264,13 +264,15 @@ gs_plugin_refine_item_pixbuf (GsPlugin *plugin, GsApp *app, AsApp *item)
switch (as_icon_get_kind (icon)) {
case AS_ICON_KIND_REMOTE:
gs_app_set_icon (app, icon);
- path = g_build_filename (g_get_user_data_dir (),
- "gnome-software",
- "icons",
- NULL);
- fn = g_build_filename (path, as_icon_get_name (icon), NULL);
- as_icon_set_filename (icon, fn);
- as_icon_set_prefix (icon, path);
+ if (as_icon_get_filename (icon) == NULL) {
+ path = g_build_filename (g_get_user_data_dir (),
+ "gnome-software",
+ "icons",
+ NULL);
+ fn = g_build_filename (path, as_icon_get_name (icon), NULL);
+ as_icon_set_filename (icon, fn);
+ as_icon_set_prefix (icon, path);
+ }
if (g_file_test (fn, G_FILE_TEST_EXISTS)) {
as_icon_set_kind (icon, AS_ICON_KIND_LOCAL);
ret = gs_app_load_icon (app, plugin->scale, &error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]