From: John Darrington Date: Tue, 16 May 2017 12:00:39 +0000 (+0200) Subject: Fix potential crash if matrix file variables are of unexpected types X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c46a4f6eb220d9595be1ad6cb5acb748e45f0a0d;p=pspp Fix potential crash if matrix file variables are of unexpected types --- 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);