summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorquartenium <quartenium@gmail.com>2017-09-11 17:59:11 +0300
committerArx Cruz <arxcruz@redhat.com>2019-04-14 18:09:34 +0000
commitcd636315a5ff60567ff6a49ea10f326b69337029 (patch)
tree9d4d0c4c395e6b5f98be31f9135cf12e6a1f8c0d /src
parentf608fc91c9718be6325b49c943dc2df33b28adc0 (diff)
downloadzenity-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.c13
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;
}
}