From f30315d16d9be0524d4b04f97586f51a37f9adf4 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sat, 28 Aug 2021 09:02:14 +0200 Subject: [PATCH] Fix crash when double clicking on variable sheet cells when no variable is defined. Reported-by: Maruthi Pathapati --- src/ui/gui/psppire-variable-sheet.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ui/gui/psppire-variable-sheet.c b/src/ui/gui/psppire-variable-sheet.c index b0fcbfca90..859803f612 100644 --- a/src/ui/gui/psppire-variable-sheet.c +++ b/src/ui/gui/psppire-variable-sheet.c @@ -48,6 +48,9 @@ set_var_type (PsppireVariableSheet *sheet) struct variable *var = psppire_dict_get_variable (PSPPIRE_DICT (dict), row); + if (var == NULL) + return; + const struct fmt_spec *format = var_get_write_format (var); struct fmt_spec fmt = *format; GtkWindow *win = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (sheet))); @@ -69,6 +72,9 @@ set_missing_values (PsppireVariableSheet *sheet) struct variable *var = psppire_dict_get_variable (PSPPIRE_DICT (dict), row); + if (var == NULL) + return; + struct missing_values mv; if (GTK_RESPONSE_OK == psppire_missing_val_dialog_run (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (sheet))), @@ -92,6 +98,9 @@ set_value_labels (PsppireVariableSheet *sheet) struct variable *var = psppire_dict_get_variable (PSPPIRE_DICT (dict), row); + if (var == NULL) + return; + struct val_labs *vls = psppire_val_labs_dialog_run (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (sheet))), var); @@ -326,6 +335,8 @@ change_var_property (PsppireVariableSheet *var_sheet, gint col, gint row, const if (NULL == var) var = psppire_dict_insert_variable (dict, row, NULL); + g_return_if_fail (var); + switch (col) { case DICT_TVM_COL_NAME: -- 2.30.2