From 4a49e8177df96e6947609fcb6066d1d68e0f6675 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 12 Jan 2016 12:22:37 +0100 Subject: [PATCH] ONEWAY: fix crash in contrasts when dataset is empty --- src/language/stats/oneway.c | 2 ++ tests/language/stats/oneway.at | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/language/stats/oneway.c b/src/language/stats/oneway.c index f2214e49e2..544889dfae 100644 --- a/src/language/stats/oneway.c +++ b/src/language/stats/oneway.c @@ -1387,6 +1387,8 @@ show_contrast_tests (const struct oneway_spec *cmd, const struct oneway_workspac { const struct per_var_ws *pvw = &ws->vws[v]; const struct categoricals *cats = covariance_get_categoricals (pvw->cov); + if (!categoricals_is_complete (cats)) + continue; struct ll *cli; int i = 0; int lines_per_variable = 2 * n_contrasts; diff --git a/tests/language/stats/oneway.at b/tests/language/stats/oneway.at index c686f27c17..1d6b4c13a0 100644 --- a/tests/language/stats/oneway.at +++ b/tests/language/stats/oneway.at @@ -974,3 +974,24 @@ ONEWAY AT_CHECK([pspp -O format=csv crash3.sps], [0], [ignore]) AT_CLEANUP + + +AT_SETUP([ONEWAY Crash on empty data]) +AT_DATA([crash4.sps],[dnl +DATA LIST NOTABLE LIST /height * weight * temperature * sex *. +BEGIN DATA. +1801 . . 0 +1606 . . 1 +END DATA. + +ONEWAY /VARIABLES= height weight temperature BY sex + /CONTRAST = -1 1 + /CONTRAST = -3 3 + /CONTRAST = 2 -2 1 + /CONTRAST = -9 9 + . +]) + +AT_CHECK([pspp -O format=csv crash4.sps], [0], [ignore]) + +AT_CLEANUP -- 2.30.2