Hello community, here is the log from the commit of package epiphany for openSUSE:Factory checked in at 2018-06-02 12:09:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/epiphany (Old) and /work/SRC/openSUSE:Factory/.epiphany.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "epiphany" Sat Jun 2 12:09:42 2018 rev:152 rq:613058 version:3.28.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/epiphany/epiphany.changes 2018-04-23 15:26:29.365180559 +0200 +++ /work/SRC/openSUSE:Factory/.epiphany.new/epiphany.changes 2018-06-02 12:09:50.181077625 +0200 @@ -1,0 +2,13 @@ +Tue May 22 16:22:16 UTC 2018 - bjorn....@gmail.com + +- Update to version 3.28.2.1: + + Again disallow Ctrl+T in app mode (bgo#795007). + + Remove problematic adblock filters (bgo#796245). + + Fix crashes when signing out of Firefox Sync. +- Add epiphany-bring-back-tabs-webapp.patch: Revert the revert for + tabs in webapps (bgo#795007, bgo#796204). +- Add epiphany-fix-crash-CVE-2018-11396.patch: session: Fix crash + when JS opens an invalid URI (CVE-2018-11396, bgo#795740, + boo#1094464). + +------------------------------------------------------------------- Old: ---- epiphany-3.28.1.1.tar.xz New: ---- epiphany-3.28.2.1.tar.xz epiphany-bring-back-tabs-webapp.patch epiphany-fix-crash-CVE-2018-11396.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ epiphany.spec ++++++ --- /var/tmp/diff_new_pack.J7pkzS/_old 2018-06-02 12:09:51.089044324 +0200 +++ /var/tmp/diff_new_pack.J7pkzS/_new 2018-06-02 12:09:51.093044178 +0200 @@ -17,7 +17,7 @@ Name: epiphany -Version: 3.28.1.1 +Version: 3.28.2.1 Release: 0 Summary: GNOME Web Browser License: GPL-3.0-or-later @@ -25,6 +25,12 @@ URL: https://wiki.gnome.org/Apps/Web Source0: http://download.gnome.org/sources/epiphany/3.28/%{name}-%{version}.tar.xz Source99: %{name}-rpmlintrc +# PATCH-FIX-UPSTREAM epiphany-bring-back-tabs-webapp.patch -- Revert the revert for tabs in webapps. +# FIXME Drop epiphany-bring-back-tabs-webapp.patch on versionbump to 3.29, fixed differently on master. +Patch0: epiphany-bring-back-tabs-webapp.patch +# PATCH-FIX-UPSTREAM epiphany-fix-crash-CVE-2018-11396.patch CVE-2018-11396 bgo#795740 boo#1094464 -- session: Fix crash when JS opens an invalid URI +Patch1: epiphany-fix-crash-CVE-2018-11396.patch + BuildRequires: fdupes BuildRequires: meson BuildRequires: pkgconfig @@ -93,7 +99,9 @@ %lang_package %prep -%autosetup -p1 +%autosetup -N +%patch0 -p1 -R +%patch1 -p1 translation-update-upstream %build ++++++ epiphany-3.28.1.1.tar.xz -> epiphany-3.28.2.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/NEWS new/epiphany-3.28.2.1/NEWS --- old/epiphany-3.28.1.1/NEWS 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/NEWS 2018-05-22 07:17:24.000000000 +0200 @@ -1,3 +1,15 @@ +3.28.2.1 - May 22, 2018 +======================= + +- New release because I pushed the 3.28.2 tag too soon. + +3.28.2 - May 21, 2018 +===================== + +- Again disallow Ctrl+T in app mode (#795007) +- Remove problematic adblock filters (#796245) +- Fix crashes when signing out of Firefox Sync (Gabriel Ivascu) + 3.28.1.1 - April 19, 2018 ========================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/data/org.gnome.epiphany.gschema.xml new/epiphany-3.28.2.1/data/org.gnome.epiphany.gschema.xml --- old/epiphany-3.28.1.1/data/org.gnome.epiphany.gschema.xml 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/data/org.gnome.epiphany.gschema.xml 2018-05-22 07:17:24.000000000 +0200 @@ -101,7 +101,7 @@ </key> <key type="as" name="adblock-filters"> - <default>['https://easylist.to/easylist/easylist.txt', 'https://easylist.to/easylist/easyprivacy.txt', 'https://easylist.to/easylist/fanboy-annoyance.txt']</default> + <default>['https://easylist.to/easylist/easylist.txt', 'https://easylist.to/easylist/easyprivacy.txt']</default> <summary>List of adblock filters</summary> <description>List of URLs with filter rules to be used by the adblock.</description> </key> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/lib/ephy-profile-utils.h new/epiphany-3.28.2.1/lib/ephy-profile-utils.h --- old/epiphany-3.28.1.1/lib/ephy-profile-utils.h 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/lib/ephy-profile-utils.h 2018-05-22 07:17:24.000000000 +0200 @@ -24,7 +24,7 @@ G_BEGIN_DECLS -#define EPHY_PROFILE_MIGRATION_VERSION 27 +#define EPHY_PROFILE_MIGRATION_VERSION 28 #define EPHY_INSECURE_PASSWORDS_MIGRATION_VERSION 11 #define EPHY_SETTINGS_MIGRATION_VERSION 16 #define EPHY_FIREFOX_SYNC_PASSWORDS_MIGRATION_VERSION 19 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/lib/ephy-uri-tester-shared.h new/epiphany-3.28.2.1/lib/ephy-uri-tester-shared.h --- old/epiphany-3.28.1.1/lib/ephy-uri-tester-shared.h 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/lib/ephy-uri-tester-shared.h 2018-05-22 07:17:24.000000000 +0200 @@ -26,8 +26,6 @@ #define ADBLOCK_DEFAULT_FILTER_URL "https://easylist.to/easylist/easylist.txt" #define ADBLOCK_PRIVACY_FILTER_URL "https://easylist.to/easylist/easyprivacy.txt" -/* The annoyance filter includes the social button filter, which is important for privacy too. */ -#define ADBLOCK_ANNOYANCE_FILTER_URL "https://easylist.to/easylist/fanboy-annoyance.txt" GFile *ephy_uri_tester_get_adblock_filter_file (const char *adblock_data_dir, const char *filter_url); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/lib/sync/ephy-sync-service.c new/epiphany-3.28.2.1/lib/sync/ephy-sync-service.c --- old/epiphany-3.28.1.1/lib/sync/ephy-sync-service.c 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/lib/sync/ephy-sync-service.c 2018-05-22 07:17:24.000000000 +0200 @@ -401,6 +401,11 @@ g_assert (collection); crypto_keys = ephy_sync_service_get_secret (self, secrets[CRYPTO_KEYS]); + if (!crypto_keys) { + g_warning ("Missing crypto-keys secret"); + return NULL; + } + node = json_from_string (crypto_keys, &error); g_assert (!error); json = json_node_get_object (node); @@ -1111,6 +1116,10 @@ g_assert (ephy_sync_utils_user_is_signed_in ()); collection = ephy_synchronizable_manager_get_collection_name (manager); + bundle = ephy_sync_service_get_key_bundle (self, collection); + if (!bundle) + return; + id = ephy_synchronizable_get_id (synchronizable); /* Firefox uses UUIDs with curly braces as IDs for saved passwords records. * Curly braces are unsafe characters in URLs so they must be encoded. @@ -1124,7 +1133,6 @@ json_object_set_string_member (object, "id", id); json_object_set_boolean_member (object, "deleted", TRUE); record = json_to_string (node, FALSE); - bundle = ephy_sync_service_get_key_bundle (self, collection); payload = ephy_sync_crypto_encrypt_record (record, bundle); json_object_remove_member (object, "deleted"); json_object_set_string_member (object, "payload", payload); @@ -1172,6 +1180,9 @@ type = ephy_synchronizable_manager_get_synchronizable_type (data->manager); collection = ephy_synchronizable_manager_get_collection_name (data->manager); bundle = ephy_sync_service_get_key_bundle (data->service, collection); + if (!bundle) + goto out; + synchronizable = EPHY_SYNCHRONIZABLE (ephy_synchronizable_from_bso (node, type, bundle, &is_deleted)); if (!synchronizable) { g_warning ("Failed to create synchronizable object from BSO"); @@ -1282,6 +1293,9 @@ collection = ephy_synchronizable_manager_get_collection_name (manager); bundle = ephy_sync_service_get_key_bundle (self, collection); + if (!bundle) + return; + bso = ephy_synchronizable_to_bso (synchronizable, bundle); id = ephy_synchronizable_get_id (synchronizable); /* Firefox uses UUIDs with curly braces as IDs for saved passwords records. @@ -1320,9 +1334,12 @@ g_assert (EPHY_IS_SYNCHRONIZABLE_MANAGER (manager)); g_assert (synchronizables); - batches = g_ptr_array_new_with_free_func (g_free); collection = ephy_synchronizable_manager_get_collection_name (manager); bundle = ephy_sync_service_get_key_bundle (self, collection); + if (!bundle) + return NULL; + + batches = g_ptr_array_new_with_free_func (g_free); for (guint i = start; i < end; i += EPHY_SYNC_BATCH_SIZE) { JsonNode *node = json_node_new (JSON_NODE_ARRAY); @@ -1502,7 +1519,7 @@ { SyncCollectionAsyncData *data = (SyncCollectionAsyncData *)user_data; EphySynchronizable *remote; - SyncCryptoKeyBundle *bundle; + SyncCryptoKeyBundle *bundle = NULL; JsonNode *node = NULL; JsonArray *array = NULL; GError *error = NULL; @@ -1530,6 +1547,9 @@ type = ephy_synchronizable_manager_get_synchronizable_type (data->manager); bundle = ephy_sync_service_get_key_bundle (data->service, collection); + if (!bundle) + goto out_error; + for (guint i = 0; i < json_array_get_length (array); i++) { remote = EPHY_SYNCHRONIZABLE (ephy_synchronizable_from_bso (json_array_get_element (array, i), type, bundle, &is_deleted)); @@ -1559,6 +1579,8 @@ g_signal_emit (data->service, signals[SYNC_FINISHED], 0); sync_collection_async_data_free (data); out_no_error: + if (bundle) + ephy_sync_crypto_key_bundle_free (bundle); if (node) json_node_unref (node); if (error) @@ -1860,6 +1882,10 @@ g_assert (EPHY_IS_SYNC_SERVICE (self)); + bundle = ephy_sync_service_get_key_bundle (self, "clients"); + if (!bundle) + return; + /* Make device ID and name. */ device_bso_id = ephy_sync_utils_get_device_bso_id (); device_id = ephy_sync_utils_get_device_id (); @@ -1867,7 +1893,6 @@ /* Make BSO as string. */ record = ephy_sync_utils_make_client_record (device_bso_id, device_id, device_name); - bundle = ephy_sync_service_get_key_bundle (self, "clients"); encrypted = ephy_sync_crypto_encrypt_record (record, bundle); bso = json_object_new (); @@ -2772,9 +2797,10 @@ ephy_sync_service_start_sync (EphySyncService *self) { g_assert (EPHY_IS_SYNC_SERVICE (self)); - g_assert (ephy_sync_utils_user_is_signed_in ()); g_assert (self->sync_periodically); - ephy_sync_service_sync_internal (self); - ephy_sync_service_schedule_periodical_sync (self); + if (ephy_sync_utils_user_is_signed_in ()) { + ephy_sync_service_sync_internal (self); + ephy_sync_service_schedule_periodical_sync (self); + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/meson.build new/epiphany-3.28.2.1/meson.build --- old/epiphany-3.28.1.1/meson.build 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/meson.build 2018-05-22 07:17:24.000000000 +0200 @@ -1,6 +1,6 @@ project('epiphany', 'c', license: 'GPL3+', - version: '3.28.1.1', + version: '3.28.2.1', meson_version: '>= 0.42.0', default_options: ['c_std=gnu11'] ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/src/ephy-notebook.c new/epiphany-3.28.2.1/src/ephy-notebook.c --- old/epiphany-3.28.1.1/src/ephy-notebook.c 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/src/ephy-notebook.c 2018-05-22 07:17:24.000000000 +0200 @@ -344,10 +344,12 @@ update_tabs_visibility (EphyNotebook *nb, gboolean before_inserting) { + EphyEmbedShellMode mode; gboolean show_tabs = FALSE; guint num; EphyPrefsUITabsBarVisibilityPolicy policy; + mode = ephy_embed_shell_get_mode (EPHY_EMBED_SHELL (ephy_shell_get_default ())); num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb)); if (before_inserting) @@ -356,8 +358,9 @@ policy = g_settings_get_enum (EPHY_SETTINGS_UI, EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY); - if (((policy == EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY_MORE_THAN_ONE && num > 1) || - policy == EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY_ALWAYS)) + if (mode != EPHY_EMBED_SHELL_MODE_APPLICATION && + ((policy == EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY_MORE_THAN_ONE && num > 1) || + policy == EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY_ALWAYS)) show_tabs = TRUE; /* Only show the tabs when the "tabs-allowed" property is TRUE. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/src/ephy-window.c new/epiphany-3.28.2.1/src/ephy-window.c --- old/epiphany-3.28.1.1/src/ephy-window.c 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/src/ephy-window.c 2018-05-22 07:17:24.000000000 +0200 @@ -2997,6 +2997,7 @@ "save-as-application", "encoding", "bookmark-page", + "new-tab", "home" }; static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/src/prefs-dialog.c new/epiphany-3.28.2.1/src/prefs-dialog.c --- old/epiphany-3.28.1.1/src/prefs-dialog.c 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/src/prefs-dialog.c 2018-05-22 07:17:24.000000000 +0200 @@ -1420,21 +1420,16 @@ { char **filters; char **new_filters; - char **newer_filters; filters = g_settings_get_strv (EPHY_SETTINGS_MAIN, EPHY_PREFS_ADBLOCK_FILTERS); - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) { + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) new_filters = ephy_strv_append ((const char * const *)filters, ADBLOCK_PRIVACY_FILTER_URL); - newer_filters = ephy_strv_append ((const char * const *)new_filters, ADBLOCK_ANNOYANCE_FILTER_URL); - } else { + else new_filters = ephy_strv_remove ((const char * const *)filters, ADBLOCK_PRIVACY_FILTER_URL); - newer_filters = ephy_strv_remove ((const char * const *)new_filters, ADBLOCK_ANNOYANCE_FILTER_URL); - } - g_settings_set_strv (EPHY_SETTINGS_MAIN, EPHY_PREFS_ADBLOCK_FILTERS, (const char * const *)newer_filters); + g_settings_set_strv (EPHY_SETTINGS_MAIN, EPHY_PREFS_ADBLOCK_FILTERS, (const char * const *)new_filters); g_strfreev (filters); g_strfreev (new_filters); - g_strfreev (newer_filters); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/src/profile-migrator/ephy-profile-migrator.c new/epiphany-3.28.2.1/src/profile-migrator/ephy-profile-migrator.c --- old/epiphany-3.28.1.1/src/profile-migrator/ephy-profile-migrator.c 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/src/profile-migrator/ephy-profile-migrator.c 2018-05-22 07:17:24.000000000 +0200 @@ -30,6 +30,7 @@ #include "ephy-search-engine-manager.h" #include "ephy-settings.h" #include "ephy-sqlite-connection.h" +#include "ephy-string.h" #include "ephy-sync-debug.h" #include "ephy-sync-utils.h" #include "ephy-uri-tester-shared.h" @@ -610,6 +611,11 @@ char *default_search_engine_address; const char *default_search_engine_name = _("Search the Web"); + /* Search engine settings are only used in browser mode, so no need to migrate + * if we are not in browser mode. */ + if (!ephy_dot_dir_is_default ()) + return; + bookmarks_manager = ephy_bookmarks_manager_new (); search_engine_manager = ephy_search_engine_manager_new (); @@ -1188,6 +1194,28 @@ } static void +migrate_annoyance_list (void) +{ + GVariant *user_value; + const char **filters; + char **modified_filters; + + /* Has the filters setting been modified? If not, we're done. */ + user_value = g_settings_get_user_value (EPHY_SETTINGS_MAIN, EPHY_PREFS_ADBLOCK_FILTERS); + if (!user_value) + return; + + /* The annoyance list was causing a bunch of problems. Forcibly remove it. */ + filters = g_variant_get_strv (user_value, NULL); + modified_filters = ephy_strv_remove (filters, "https://easylist.to/easylist/fanboy-annoyance.txt"); + g_settings_set_strv (EPHY_SETTINGS_MAIN, EPHY_PREFS_ADBLOCK_FILTERS, (const char * const *)modified_filters); + + g_variant_unref (user_value); + g_free (filters); + g_strfreev (modified_filters); +} + +static void migrate_nothing (void) { /* Used to replace migrators that have been removed. Only remove migrators @@ -1227,7 +1255,8 @@ /* 24 */ migrate_bookmarks_timestamp, /* 25 */ migrate_passwords_timestamp, /* 26 */ migrate_nothing, - /* 27 */ migrate_search_engines + /* 27 */ migrate_search_engines, + /* 28 */ migrate_annoyance_list }; static gboolean diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/epiphany-3.28.1.1/tests/meson.build new/epiphany-3.28.2.1/tests/meson.build --- old/epiphany-3.28.1.1/tests/meson.build 2018-04-19 17:22:01.000000000 +0200 +++ new/epiphany-3.28.2.1/tests/meson.build 2018-05-22 07:17:24.000000000 +0200 @@ -74,14 +74,15 @@ # env: envs # ) - gsb_service_test = executable('test-ephy-gsb-service', - 'ephy-gsb-service-test.c', - dependencies: ephymain_dep - ) - test('GSB service test', - gsb_service_test, - env: envs - ) + # https://bugzilla.gnome.org/show_bug.cgi?id=796324 + #gsb_service_test = executable('test-ephy-gsb-service', + # 'ephy-gsb-service-test.c', + # dependencies: ephymain_dep + #) + #test('GSB service test', + # gsb_service_test, + # env: envs + #) history_test = executable('test-ephy-history', 'ephy-history-test.c', ++++++ epiphany-bring-back-tabs-webapp.patch ++++++ >From c56294dd46db69c94f8238dd47f568ca57bc51c0 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro <mcatanz...@igalia.com> Date: Thu, 5 Apr 2018 11:52:24 -0500 Subject: Again disallow new tab action in app mode Tabs still work, but only when opening a link https://bugzilla.gnome.org/show_bug.cgi?id=795007 --- src/ephy-notebook.c | 7 +++++-- src/ephy-window.c | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ephy-notebook.c b/src/ephy-notebook.c index 3833862..4a05b93 100644 --- a/src/ephy-notebook.c +++ b/src/ephy-notebook.c @@ -344,10 +344,12 @@ static void update_tabs_visibility (EphyNotebook *nb, gboolean before_inserting) { + EphyEmbedShellMode mode; gboolean show_tabs = FALSE; guint num; EphyPrefsUITabsBarVisibilityPolicy policy; + mode = ephy_embed_shell_get_mode (EPHY_EMBED_SHELL (ephy_shell_get_default ())); num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb)); if (before_inserting) @@ -356,8 +358,9 @@ update_tabs_visibility (EphyNotebook *nb, policy = g_settings_get_enum (EPHY_SETTINGS_UI, EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY); - if (((policy == EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY_MORE_THAN_ONE && num > 1) || - policy == EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY_ALWAYS)) + if (mode != EPHY_EMBED_SHELL_MODE_APPLICATION && + ((policy == EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY_MORE_THAN_ONE && num > 1) || + policy == EPHY_PREFS_UI_TABS_BAR_VISIBILITY_POLICY_ALWAYS)) show_tabs = TRUE; /* Only show the tabs when the "tabs-allowed" property is TRUE. */ diff --git a/src/ephy-window.c b/src/ephy-window.c index e7aa10f..2bdf442 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -2997,6 +2997,7 @@ static const char *disabled_actions_for_app_mode[] = { "open", "save-as-application", "encoding", "bookmark-page", + "new-tab", "home" }; static void -- cgit v0.12 ++++++ epiphany-fix-crash-CVE-2018-11396.patch ++++++ >From 8c434004c0c5937c948cec6cccd95f547a0c14df Mon Sep 17 00:00:00 2001 From: Michael Catanzaro <mcatanz...@igalia.com> Date: Tue, 22 May 2018 21:06:32 -0500 Subject: [PATCH] session: Fix crash when JS opens an invalid URI https://bugzilla.gnome.org/show_bug.cgi?id=795740 --- src/ephy-session.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ephy-session.c b/src/ephy-session.c index 8a86cea..532930e 100644 --- a/src/ephy-session.c +++ b/src/ephy-session.c @@ -828,8 +828,15 @@ session_seems_sane (GList *windows) SoupURI *uri; gboolean sane = FALSE; + /* NULL URLs are possible when an invalid URL is opened by JS. + * E.g. <script>win = window.open("blah", "WIN");</script> + */ + if (url == NULL) + continue; + /* Blank URLs can occur in some situations. Just ignore these, as they - * are harmless and not an indicator of a corrupted session. */ + * are harmless and not an indicator of a corrupted session. + */ if (strcmp (url, "") == 0) continue; -- libgit2 0.27.0