diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2021-02-15 14:15:20 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2021-02-15 14:21:26 +0100 |
commit | da6b2bb94250d8ffb218caf921c9df8c394372d4 (patch) | |
tree | e498f601fb876a8f8d8e7bbe56b80ef0b581e4ef /src | |
parent | 514d033b8d0b9e411ba7e878ddbfa338c6720e6f (diff) | |
download | network-manager-applet-da6b2bb94250d8ffb218caf921c9df8c394372d4.tar.gz |
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 <error: Cannot access memory at address 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=<optimized out>, collect_values=<optimized out>, collect_flags=<optimized out>)
4 0x00007ffff74c49fc in g_object_set_valist (object=0x555555a02780 [NMSettingConnection], first_property_name=<optimized out>, 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=<optimized out>) at ../src/connection-editor/page-general.c:421
7 ce_page_validate_v (page=<optimized out>, connection=<optimized out>, 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
Diffstat (limited to 'src')
-rw-r--r-- | src/connection-editor/page-general.c | 4 |
1 files 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); |