From c46a4f6eb220d9595be1ad6cb5acb748e45f0a0d Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 16 May 2017 14:00:39 +0200 Subject: [PATCH] Fix potential crash if matrix file variables are of unexpected types --- src/language/data-io/matrix-reader.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/language/data-io/matrix-reader.c b/src/language/data-io/matrix-reader.c index 284ec6f931..afeffe54da 100644 --- a/src/language/data-io/matrix-reader.c +++ b/src/language/data-io/matrix-reader.c @@ -103,6 +103,14 @@ create_matrix_reader_from_case_reader (const struct dictionary *dict, struct cas return NULL; } + if (!var_is_alpha (mr->varname)) + { + msg (ME, _("Matrix dataset variable %s should be of string type."), + "VARNAME_"); + free (mr); + return NULL; + } + mr->rowtype = dict_lookup_var (dict, "rowtype_"); if (mr->rowtype == NULL) { @@ -111,6 +119,14 @@ create_matrix_reader_from_case_reader (const struct dictionary *dict, struct cas return NULL; } + if (!var_is_alpha (mr->rowtype)) + { + msg (ME, _("Matrix dataset variable %s should be of string type."), + "ROWTYPE_"); + free (mr); + return NULL; + } + size_t dvarcnt; const struct variable **dvars = NULL; dict_get_vars (dict, &dvars, &dvarcnt, DC_SCRATCH); -- 2.30.2