From d30078f7abedec82a7df1295e23a910e87cb78a4 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 24 Mar 2016 20:07:11 +0100 Subject: [PATCH] Fix crash in correlations with empty dataset. Found by zzuf. --- src/language/stats/correlations.c | 3 ++- tests/language/stats/correlations.at | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/language/stats/correlations.c b/src/language/stats/correlations.c index 133eece4f2..ba56c135c4 100644 --- a/src/language/stats/correlations.c +++ b/src/language/stats/correlations.c @@ -511,7 +511,8 @@ cmd_correlation (struct lexer *lexer, struct dataset *ds) return ok ? CMD_SUCCESS : CMD_CASCADING_FAILURE; error: - free (corr->vars); + if (corr) + free (corr->vars); free (corr); return CMD_FAILURE; } diff --git a/tests/language/stats/correlations.at b/tests/language/stats/correlations.at index 24fb63c6a6..b2fd22f823 100644 --- a/tests/language/stats/correlations.at +++ b/tests/language/stats/correlations.at @@ -348,3 +348,16 @@ var5,Pearson Correlation,-.0519,-.0407 ]) AT_CLEANUP + + +dnl Crash found by zzuf +AT_SETUP([CORRELATIONS -- empty dataset]) + +AT_DATA([correlations.sps], [dnl +data list list /a b c q g *. +CORRELATIONS 'VARIABLES = a b.] +) + +AT_CHECK([pspp -o pspp.csv correlations.sps], [1], [ignore]) + +AT_CLEANUP -- 2.30.2