From: John Darrington Date: Mon, 17 Feb 2014 19:36:00 +0000 (+0100) Subject: Fix memory fault reading ODS file. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96e7681bc36b5aa93ed794515ac7b119e3d35651;p=pspp Fix memory fault reading ODS file. Partial fix for bug #41620 --- diff --git a/src/data/ods-reader.c b/src/data/ods-reader.c index 8504c14cca..1b828d1e36 100644 --- a/src/data/ods-reader.c +++ b/src/data/ods-reader.c @@ -986,8 +986,9 @@ ods_file_casereader_read (struct casereader *reader UNUSED, void *r_) struct xml_value *xmv = xzalloc (sizeof *xmv); xmv->text = xmlTextReaderValue (r->rsd.xtr); xmv->value = val_string; - xmv->type = type; val_string = NULL; + xmv->type = type; + type = NULL; for (col = 0; col < r->rsd.col_span; ++col) { diff --git a/tests/automake.mk b/tests/automake.mk index de2425f8af..31bf0b2033 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -226,8 +226,9 @@ EXTRA_DIST += \ tests/data/num-out.expected.cmp.gz \ tests/data/v13.sav \ tests/data/v14.sav \ - tests/language/data-io/Book1.gnm.unzipped \ - tests/language/data-io/test.ods + tests/language/data-io/Book1.gnm.unzipped \ + tests/language/data-io/test.ods \ + tests/language/data-io/newone.ods CLEANFILES += *.save pspp.* foo* diff --git a/tests/language/data-io/get-data-spreadsheet.at b/tests/language/data-io/get-data-spreadsheet.at index 5d5a064a27..78ae754c8c 100644 --- a/tests/language/data-io/get-data-spreadsheet.at +++ b/tests/language/data-io/get-data-spreadsheet.at @@ -398,3 +398,19 @@ AT_BANNER([GET DATA Spreadsheet /TYPE=ODS]) CHECK_SPREADSHEET_READER([ODS]) + +AT_SETUP([GET DATA /TYPE=ODS crash]) +AT_SKIP_IF([test n$ODF_READ_SUPPORT != nyes]) + + +AT_CHECK([cp $top_srcdir/tests/language/data-io/newone.ods this.ods])dnl + +AT_DATA([crash.sps],[dnl +GET DATA /TYPE=ODS /FILE='this.ods' /CELLRANGE=RANGE 'A1:C8' /READNAMES=ON +LIST. +]) + +AT_CHECK([pspp -O format=csv crash.sps], [0], [ignore]) + +AT_CLEANUP + diff --git a/tests/language/data-io/newone.ods b/tests/language/data-io/newone.ods new file mode 100644 index 0000000000..11926c40c7 Binary files /dev/null and b/tests/language/data-io/newone.ods differ