From 8e4f17e8ae04936359e9e1837b5a42004609cb2b Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 5 Jan 2005 14:45:54 +0000 Subject: [PATCH] Fixed bug #11307 --- src/ChangeLog | 4 +++ src/case.h | 4 +-- tests/Makefile.am | 2 ++ tests/bugs/big-input.sh | 69 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 2 deletions(-) create mode 100755 tests/bugs/big-input.sh diff --git a/src/ChangeLog b/src/ChangeLog index 801c825f..39ba57a4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +Wed Jan 5 22:42:26 WST 2005 John Darrington + + * case.h Fixed bug # 11307 + Wed Jan 5 08:30:48 WST 2005 John Darrington * val-labs.c Fixed bug which caused a crash if VALUE LABELS had diff --git a/src/case.h b/src/case.h index 7312aa94..6af3aaf8 100644 --- a/src/case.h +++ b/src/case.h @@ -131,10 +131,10 @@ case_copy (struct ccase *dst, size_t dst_idx, static inline void case_to_values (const struct ccase *c, union value *output, - size_t output_size UNUSED) + size_t output_size ) { memcpy (output, c->case_data->values, - c->case_data->value_cnt * sizeof *output); + output_size * sizeof *output); } static inline void diff --git a/tests/Makefile.am b/tests/Makefile.am index a2ae4090..9b2946ee 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -15,6 +15,7 @@ TESTS = \ command/file-label.sh \ command/filter.sh \ command/flip.sh \ + command/import-export.sh \ command/lag.sh \ command/list.sh \ command/loop.sh \ @@ -41,6 +42,7 @@ TESTS = \ command/use.sh \ command/weight.sh \ bugs/alpha-freq.sh \ + bugs/big-input.sh \ bugs/comment-at-eof.sh \ bugs/compute-fmt.sh \ bugs/crosstabs.sh \ diff --git a/tests/bugs/big-input.sh b/tests/bugs/big-input.sh new file mode 100755 index 00000000..84f7abef --- /dev/null +++ b/tests/bugs/big-input.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +# This program tests for a bug which caused a crash when +# a large number of cases where presented. + + +TEMPDIR=/tmp/pspp-tst-$$ + +here=`pwd`; + +# ensure that top_srcdir is absolute +cd $top_srcdir; top_srcdir=`pwd` + +export STAT_CONFIG_PATH=$top_srcdir/config + + +cleanup() +{ + rm -rf $TEMPDIR +} + + +fail() +{ + echo $activity + echo FAILED + cleanup; + exit 1; +} + + +no_result() +{ + echo $activity + echo NO RESULT; + cleanup; + exit 2; +} + +pass() +{ + cleanup; + exit 0; +} + +mkdir -p $TEMPDIR + +cd $TEMPDIR + +activity="create program" +cat > $TEMPDIR/foo.sps < /dev/null +if [ $? -ne 1 ] ; then fail ; fi + +pass; -- 2.30.2