From: John Darrington Date: Wed, 26 Dec 2012 12:56:30 +0000 (+0100) Subject: Fixed crash parsing NPAR CHISQUARE X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=sidebyside;h=72b72afd1b0ed12af086eb6709e720b3a110ec39;p=pspp Fixed crash parsing NPAR CHISQUARE --- diff --git a/src/language/stats/npar.c b/src/language/stats/npar.c index 737c94e3d2..fbcdeae058 100644 --- a/src/language/stats/npar.c +++ b/src/language/stats/npar.c @@ -830,11 +830,11 @@ npar_chisquare (struct lexer *lexer, struct dataset *ds, { cstp->ranged = true; if ( ! lex_force_num (lexer)) return 0; - cstp->lo = lex_integer (lexer); + cstp->lo = lex_number (lexer); lex_get (lexer); lex_force_match (lexer, T_COMMA); if (! lex_force_num (lexer) ) return 0; - cstp->hi = lex_integer (lexer); + cstp->hi = lex_number (lexer); if ( cstp->lo >= cstp->hi ) { msg (ME, diff --git a/tests/language/stats/npar.at b/tests/language/stats/npar.at index f5eb2a404c..2e5d886f3f 100644 --- a/tests/language/stats/npar.at +++ b/tests/language/stats/npar.at @@ -1685,3 +1685,32 @@ Asymp. Sig. (2-tailed),1.000,.414 AT_CLEANUP + + +AT_SETUP([NPAR TESTS CHISQUARE crash]) +dnl This syntax had been observed to crash pspp + +AT_DATA([npar.sps], [dnl +data list list /x *. +begin data. +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +end data. + +* This happens to be invalid syntax. But should not crash. +NPAR TEST + /CHISQUARE= x(0.098, 99.098) + /EXPECTED = 1.2. +]) + +AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore]) + +AT_CLEANUP