From: John Darrington Date: Fri, 25 Mar 2016 20:25:49 +0000 (+0100) Subject: Fix crash in ROC command when no valid state variable is given. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51668663b12dae19507f9c1d423f618ed53d4d32;p=pspp Fix crash in ROC command when no valid state variable is given. Found by zzuf. --- diff --git a/src/language/stats/roc.c b/src/language/stats/roc.c index d011bf547e..cf8d9371ca 100644 --- a/src/language/stats/roc.c +++ b/src/language/stats/roc.c @@ -108,6 +108,10 @@ cmd_roc (struct lexer *lexer, struct dataset *ds) } roc.state_var = parse_variable (lexer, dict); + if (! roc.state_var) + { + goto error; + } if ( !lex_force_match (lexer, T_LPAREN)) { diff --git a/tests/language/stats/roc.at b/tests/language/stats/roc.at index 7ffb652288..f8d41ba75d 100644 --- a/tests/language/stats/roc.at +++ b/tests/language/stats/roc.at @@ -164,3 +164,22 @@ Area,Std. Error,Asymptotic Sig.,Lower Bound,Upper Bound .490,.111,.927,.307,.673 ]) AT_CLEANUP + + + + +AT_SETUP([ROC crash on no state variable]) +AT_DATA([roc.sps], [dnl +data list notable list /x * y * w * a *. +begin data. +5 5 1 0 +end data. + + +roc x y By(a (1) + . +]) + +AT_CHECK([pspp -o pspp.csv roc.sps], [1], [ignore]) + +AT_CLEANUP