diff --git a/epiphany-web-app-utils_Fix-crash.patch b/epiphany-web-app-utils_Fix-crash.patch new file mode 100644 index 0000000..947b8fe --- /dev/null +++ b/epiphany-web-app-utils_Fix-crash.patch @@ -0,0 +1,94 @@ +From 4111f158a9498898a27535fc68914738002f6631 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Wed, 19 Jun 2019 12:46:37 -0500 +Subject: [PATCH] web-app-utils: Fix crash when web app profile lacks .app file + +We free with the wrong free function +--- + lib/ephy-web-app-utils.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/ephy-web-app-utils.c b/lib/ephy-web-app-utils.c +index 64ace3fc3..715fd4ef1 100644 +--- a/lib/ephy-web-app-utils.c ++++ b/lib/ephy-web-app-utils.c +@@ -627,7 +627,7 @@ ephy_web_application_get_application_list_internal (gboolean only_legacy) + if (g_file_test (app_file, G_FILE_TEST_EXISTS)) + applications = g_list_prepend (applications, app); + else +- g_object_unref (app); ++ g_free (app); + } else + applications = g_list_prepend (applications, app); + } +-- +2.21.0 + + +From 75f0212b8edbf1771cacc08a195546bee3e0df63 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Tue, 18 Jun 2019 21:15:03 +0000 +Subject: [PATCH] Broken web apps should crash in a nicer way + +Although #713 is fixed for new users, anyone who previously suffered +from a broken web app migration is doomed to eternal crashes. We +probably can't reasonably recover the broken profile dir, but we should +at least try to warn users what is going on. + + +(cherry picked from commit 53724537137c593076e9ca58add46387babdf16b) +--- + lib/ephy-settings.c | 36 +++++++++++++++++++++++++++++------- + 1 file changed, 29 insertions(+), 7 deletions(-) + +diff --git a/lib/ephy-settings.c b/lib/ephy-settings.c +index 97e6a631a..f7e5ead69 100644 +--- a/lib/ephy-settings.c ++++ b/lib/ephy-settings.c +@@ -89,15 +89,37 @@ ephy_settings_get (const char *schema) + ephy_settings_init (); + + gsettings = g_hash_table_lookup (settings, schema); +- +- if (gsettings == NULL) { +- gsettings = g_settings_new (schema); +- if (gsettings == NULL) +- g_warning ("Invalid schema %s requested", schema); +- else +- g_hash_table_insert (settings, g_strdup (schema), gsettings); ++ if (gsettings) ++ return gsettings; ++ ++ if (strcmp (schema, EPHY_PREFS_WEB_APP_SCHEMA) == 0) { ++ /* EPHY_PREFS_WEB_APP_SCHEMA won't be added to the settings table if the ++ * ephy_profile_dir_is_web_application() is FALSE. But we can still get ++ * here in EPHY_EMBED_SHELL_MODE_APPLICATION if the profile dir is broken ++ * such that its .app file is missing. This includes any web apps created by ++ * Epiphany 3.30 or earlier that were migrated to 3.32 before 3.32.3 before ++ * the main profile migration. This generally means anybody using Epiphany ++ * only for web apps has wound up with broken web apps after the migration. ++ * ++ * We can only crash, but it's nicer to crash here rather than crash later. ++ * ++ * https://gitlab.gnome.org/GNOME/epiphany/issues/713 ++ */ ++ g_error ("Epiphany is trying to access web app settings outside web app" ++ " mode. Your web app may be broken. If so, you must delete it and" ++ " recreate. See epiphany#713."); + } + ++ /* schema must not be relocatable, or g_settings_new() will crash. */ ++ for (guint i = 0; i < G_N_ELEMENTS (ephy_prefs_relocatable_schemas); i++) ++ g_assert (strcmp (schema, ephy_prefs_relocatable_schemas[i].schema) != 0); ++ ++ gsettings = g_settings_new (schema); ++ if (gsettings == NULL) ++ g_warning ("Invalid schema %s requested", schema); ++ else ++ g_hash_table_insert (settings, g_strdup (schema), gsettings); ++ + return gsettings; + } + +-- +2.21.0 diff --git a/epiphany.changes b/epiphany.changes index adc25ab..ae9c14a 100644 --- a/epiphany.changes +++ b/epiphany.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Jun 19 20:04:45 UTC 2019 - Bjørn Lie + +- Add epiphany-web-app-utils_Fix-crash.patch: Fix crash when web + app profile lacks .app file and broken web apps should crash in a + nicer way. + ------------------------------------------------------------------- Tue Jun 11 23:11:12 UTC 2019 - Bjørn Lie diff --git a/epiphany.spec b/epiphany.spec index 73ba89b..7148657 100644 --- a/epiphany.spec +++ b/epiphany.spec @@ -25,6 +25,8 @@ Group: Productivity/Networking/Web/Browsers URL: https://wiki.gnome.org/Apps/Web Source0: https://download.gnome.org/sources/epiphany/3.32/%{name}-%{version}.tar.xz Source99: %{name}-rpmlintrc +# PATCH-FIX-UPSTREAM epiphany-web-app-utils_Fix-crash.patch -- Add 2 upstream crash fixes. +Patch0: epiphany-web-app-utils_Fix-crash.patch BuildRequires: fdupes BuildRequires: meson >= 0.42.0