From 87850eb29dad3b9b574eaa5f2d1cffb3885d4d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Nogueira?= Date: Fri, 12 Mar 2021 15:04:12 -0300 Subject: [PATCH] network-manager-applet: fix crash in connection editor. --- .../patches/fix-crash.patch | 52 +++++++++++++++++++ srcpkgs/network-manager-applet/template | 3 +- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/network-manager-applet/patches/fix-crash.patch diff --git a/srcpkgs/network-manager-applet/patches/fix-crash.patch b/srcpkgs/network-manager-applet/patches/fix-crash.patch new file mode 100644 index 00000000000..3c0fd7d63ed --- /dev/null +++ b/srcpkgs/network-manager-applet/patches/fix-crash.patch @@ -0,0 +1,52 @@ +From da6b2bb94250d8ffb218caf921c9df8c394372d4 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Mon, 15 Feb 2021 14:15:20 +0100 +Subject: [PATCH] editor: fix crash when evaluating secondaries + +The compound literal goes out of scope when the enclosing block +ends. Replace it with an array on the stack. + + 0 __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65 + 1 0x00007ffff73eba44 in g_strdup (str=0x6c15375cc4e4b600 ) + 2 0x00007ffff73ed42d in g_strdupv (str_array=0x7fffffffc520) at ../../../glib/gstrfuncs.c:2552 + 3 0x00007ffff74b9b70 in boxed_proxy_collect_value (value=0x7fffffffc350, n_collect_values=, collect_values=, collect_flags=) + 4 0x00007ffff74c49fc in g_object_set_valist (object=0x555555a02780 [NMSettingConnection], first_property_name=, var_args=0x7fffffffc400) + 5 0x00007ffff74c52fc in g_object_set (_object=0x555555a02780, first_property_name=first_property_name@entry=0x5555555a3471 "secondaries") + 6 0x0000555555580ff8 in ui_to_setting (self=) at ../src/connection-editor/page-general.c:421 + 7 ce_page_validate_v (page=, connection=, error=0x7fffffffc5c0) at ../src/connection-editor/page-general.c:450 + 8 0x0000555555569313 in ce_page_validate (self=0x555555898f20 [CEPageGeneral], connection=connection@entry=0x5555557fe840, error=error@entry=0x7fffffffc5c0) at ../src/connection-editor/ce-page.c:161 + 9 0x000055555557343b in connection_editor_validate (editor=0x555555a2a840 [NMConnectionEditor]) at ../src/connection-editor/nm-connection-editor.c:357 + [...] + +Fixes: 768eb7dfa974 ("c-e: fix initializing drop-down list for connection.secondaries") + +https://gitlab.gnome.org/GNOME/network-manager-applet/-/issues/125 +--- + src/connection-editor/page-general.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/connection-editor/page-general.c b/src/connection-editor/page-general.c +index 358582ff..794407d6 100644 +--- a/src/connection-editor/page-general.c ++++ b/src/connection-editor/page-general.c +@@ -392,7 +392,7 @@ static void + ui_to_setting (CEPageGeneral *self) + { + CEPageGeneralPrivate *priv = CE_PAGE_GENERAL_GET_PRIVATE (self); +- const char *const*secondaries = NULL; ++ const char *secondaries[2] = { NULL, NULL }; + gs_free char *secondaries_uuid = NULL; + GtkTreeIter iter; + gboolean autoconnect = FALSE, everyone = FALSE; +@@ -415,7 +415,7 @@ ui_to_setting (CEPageGeneral *self) + && gtk_combo_box_get_active_iter (priv->dependent_vpn, &iter)) { + gtk_tree_model_get (GTK_TREE_MODEL (priv->dependent_vpn_store), &iter, + COL_UUID, &secondaries_uuid, -1); +- secondaries = (const char *[]) { secondaries_uuid, NULL }; ++ secondaries[0] = secondaries_uuid; + } + + g_object_set (G_OBJECT (priv->setting), NM_SETTING_CONNECTION_SECONDARIES, secondaries, NULL); +-- +GitLab + diff --git a/srcpkgs/network-manager-applet/template b/srcpkgs/network-manager-applet/template index be2ecd7c2e8..6c5a37d1429 100644 --- a/srcpkgs/network-manager-applet/template +++ b/srcpkgs/network-manager-applet/template @@ -1,7 +1,7 @@ # Template file for 'network-manager-applet' pkgname=network-manager-applet version=1.20.0 -revision=1 +revision=2 build_style=meson configure_args="-Dselinux=false" hostmakedepends="dbus-glib-devel glib-devel intltool pkg-config" @@ -17,4 +17,5 @@ homepage="https://wiki.gnome.org/Projects/NetworkManager" changelog="https://raw.githubusercontent.com/NetworkManager/network-manager-applet/master/NEWS" distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz" checksum=8ab205385d8380e3b7e4994b46f6ff009c453e3430bd2b2853c74263f69a5253 +patch_args=-Np1 lib32disabled=yes