Fix crash when no indepdendent variable in NPAR is given.
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 25 Mar 2016 19:13:46 +0000 (20:13 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 25 Mar 2016 19:13:46 +0000 (20:13 +0100)
Found by zzuf.

src/language/stats/npar.c
tests/language/stats/npar.at

index d89eb0b876d63889f9a796b81b2a34f8daac3e29..22d95c025a5beac60f24ccb48cf17bf8a128f28b 100644 (file)
@@ -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;
index eec7433c34997c5541e3dbf7da71105dacb69150..a7e1331e686e2033265af3a4c1613f1ee498ac14 100644 (file)
@@ -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