[zenity] src/forms.c: Fix segfault on multiple lists without values



commit cd636315a5ff60567ff6a49ea10f326b69337029
Author: quartenium <quartenium gmail com>
Date:   Mon Sep 11 17:59:11 2017 +0300

    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.

 src/forms.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
---
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;
                }
        }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]