diff options
author | quartenium <quartenium@gmail.com> | 2017-09-11 17:59:11 +0300 |
---|---|---|
committer | Arx Cruz <arxcruz@redhat.com> | 2019-04-14 18:09:34 +0000 |
commit | cd636315a5ff60567ff6a49ea10f326b69337029 (patch) | |
tree | 9d4d0c4c395e6b5f98be31f9135cf12e6a1f8c0d /src | |
parent | f608fc91c9718be6325b49c943dc2df33b28adc0 (diff) | |
download | zenity-cd636315a5ff60567ff6a49ea10f326b69337029.tar.gz |
src/forms.c: Fix segfault on multiple lists without values
If was not provided enought list-values for add-list options
then column_types is NULL. Therefore need set it to default
value.
If count of columns values less than count of list values
then set column nubmer to zero.
Diffstat (limited to 'src')
-rw-r--r-- | src/forms.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/forms.c b/src/forms.c index 4e6fca5..15df718 100644 --- a/src/forms.c +++ b/src/forms.c @@ -110,8 +110,15 @@ zenity_forms_create_and_fill_list ( tree_view = gtk_tree_view_new (); if (forms_data->column_values) { + int columns_values_count = + g_slist_length (forms_data->column_values); + int column_number = 0; + if (list_number < columns_values_count) { + column_number = list_number; + } + column_values = - g_slist_nth_data (forms_data->column_values, list_number); + g_slist_nth_data (forms_data->column_values, column_number); if (column_values) { gchar **values = g_strsplit_set (column_values, "|", -1); if (values) { @@ -130,6 +137,10 @@ zenity_forms_create_and_fill_list ( column_index++; } } + } else { + /* If no values available, add one with string type*/ + column_types = g_new (GType, n_columns); + column_types[0] = G_TYPE_STRING; } } |