From: John Darrington Date: Sat, 31 Mar 2012 08:21:02 +0000 (+0200) Subject: examine.c: Fix a seg fault which caused a crash when recovering from bad syntax X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3415a10678e26d538589468d7dc482968e58a89f;p=pspp examine.c: Fix a seg fault which caused a crash when recovering from bad syntax --- diff --git a/src/language/stats/examine.c b/src/language/stats/examine.c index 88b3b542c8..6be74bc8fd 100644 --- a/src/language/stats/examine.c +++ b/src/language/stats/examine.c @@ -2215,6 +2215,7 @@ cmd_examine (struct lexer *lexer, struct dataset *ds) error: caseproto_unref (examine.ex_proto); + examine.iacts = iacts_mem; for (i = 0; i < examine.n_iacts; ++i) interaction_destroy (examine.iacts[i]); free (examine.dep_vars); diff --git a/tests/language/stats/examine.at b/tests/language/stats/examine.at index 045506357f..f152f72899 100644 --- a/tests/language/stats/examine.at +++ b/tests/language/stats/examine.at @@ -641,3 +641,32 @@ x,Highest,1,threehundred,300.00 ]) AT_CLEANUP + +dnl Test for a crash which happened on cleanup from a bad input syntax +AT_SETUP([EXAMINE -- Bad Input]) + +AT_DATA([examine-bad.sps], [dnl +data list list /h * g *. +begin data. +1 1 +2 1 +3 1 +4 1 +5 2 +6 2 +7 2 +8 2 +9 2 +end data. + +EXAMINE + /VARIABLES= h + BY g + /STATISTICS = DESCRIPTIVES EXTREME + /PLOT = lkajsdas + . +]) + +AT_CHECK([pspp -o pspp.csv examine-bad.sps], [1], [ignore]) + +AT_CLEANUP