From: John Darrington <john@darrington.wattle.id.au>
Date: Fri, 25 Mar 2016 19:13:46 +0000 (+0100)
Subject: Fix crash when no indepdendent variable in NPAR is given.
X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba62a44bae574548294d6ed5112cceb69fd4f074;p=pspp

Fix crash when no indepdendent variable in NPAR is given.

Found by zzuf.
---

diff --git a/src/language/stats/npar.c b/src/language/stats/npar.c
index d89eb0b876..22d95c025a 100644
--- a/src/language/stats/npar.c
+++ b/src/language/stats/npar.c
@@ -1191,6 +1191,8 @@ parse_n_sample_related_test (struct lexer *lexer,
     return false;
 
   nst->indep_var = parse_variable_const (lexer, dict);
+  if (!nst->indep_var)
+    return false;
 
   if ( ! lex_force_match (lexer, T_LPAREN))
     return false;
diff --git a/tests/language/stats/npar.at b/tests/language/stats/npar.at
index eec7433c34..a7e1331e68 100644
--- a/tests/language/stats/npar.at
+++ b/tests/language/stats/npar.at
@@ -1742,3 +1742,26 @@ NPAR TEST
 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
 
 AT_CLEANUP
+
+
+AT_SETUP([NPAR TESTS - crash on invalid syntax])
+
+AT_DATA([npar.sps], [dnl
+data list notable list /ev * xscore *.
+begin data.
+2 109
+3 115
+1 61
+1 101
+3 147
+end data.
+
+
+npar tests
+        /kruskal-wallis xscore by(gv (1, 3).
+])
+
+AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
+
+AT_CLEANUP
+ 
\ No newline at end of file