From 72fa53029f0a25e767b07a0ae46a0d6f4a74f4d7 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sat, 26 Mar 2016 15:22:47 +0100 Subject: [PATCH] Fix crash in oneway when an invalid dependent variable was specified. Found by zzuf --- src/language/stats/oneway.c | 2 ++ tests/language/stats/oneway.at | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/language/stats/oneway.c b/src/language/stats/oneway.c index 544889dfae..9650dc6e6a 100644 --- a/src/language/stats/oneway.c +++ b/src/language/stats/oneway.c @@ -453,6 +453,8 @@ cmd_oneway (struct lexer *lexer, struct dataset *ds) lex_force_match (lexer, T_BY); oneway.indep_var = parse_variable_const (lexer, dict); + if (oneway.indep_var == NULL) + goto error; while (lex_token (lexer) != T_ENDCMD) { diff --git a/tests/language/stats/oneway.at b/tests/language/stats/oneway.at index 1d6b4c13a0..336b328364 100644 --- a/tests/language/stats/oneway.at +++ b/tests/language/stats/oneway.at @@ -995,3 +995,21 @@ ONEWAY /VARIABLES= height weight temperature BY sex AT_CHECK([pspp -O format=csv crash4.sps], [0], [ignore]) AT_CLEANUP + + + +AT_SETUP([ONEWAY Crash on invalid dependent variable]) +AT_DATA([crash5.sps],[dnl +data list notable list /a * b *. +begin data. +3 0 +2 0 +6 2 +end data. + +oneway a"by b. +]) + +AT_CHECK([pspp -O format=csv crash5.sps], [1], [ignore]) + +AT_CLEANUP -- 2.30.2