From 1082b8558c7fec407f23e2cecbcd7eb30a84143b Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 31 Mar 2016 22:27:52 +0200 Subject: [PATCH] Fix crash in NPAR when no variables were parsed. Found by zzuf. --- src/language/stats/npar.c | 2 +- tests/language/stats/npar.at | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/language/stats/npar.c b/src/language/stats/npar.c index b8cbb1bcf2..92b86252e4 100644 --- a/src/language/stats/npar.c +++ b/src/language/stats/npar.c @@ -539,7 +539,7 @@ npar_execute (struct casereader *input, test->execute (ds, casereader_clone (input), specs->filter, test, specs->exact, specs->timer); } - if ( specs->descriptives ) + if (specs->descriptives && specs->n_vars > 0) { summary_descriptives = xnmalloc (sizeof (*summary_descriptives), specs->n_vars); diff --git a/tests/language/stats/npar.at b/tests/language/stats/npar.at index ed829cdc52..038b788df1 100644 --- a/tests/language/stats/npar.at +++ b/tests/language/stats/npar.at @@ -1764,4 +1764,28 @@ npar tests AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore]) AT_CLEANUP + + + + +AT_SETUP([NPAR TESTS - crash on unterminated string]) + +AT_DATA([npar.sps], [dnl +DATA LIST NOTABLE LIST /x * y * w * . +BEGIN DATA. +3.1 1 4 +3.2 2 1 +4 2 6 +END DATA. + + +NPAR TESTS +" CHISQUARE=x y(-2,5) + /STATISTICS=DESCRIPTIVES + . +]) + +AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore]) + +AT_CLEANUP \ No newline at end of file -- 2.30.2