John Darrington [Sat, 29 Sep 2018 10:27:31 +0000 (12:27 +0200)]
src/data/mdd-writer.c: Avoid compiler warning
John Darrington [Sat, 29 Sep 2018 09:10:45 +0000 (11:10 +0200)]
value-variant.c: Avoid read from beyond end of buffer in string values.
Ben Pfaff [Wed, 26 Sep 2018 23:24:40 +0000 (16:24 -0700)]
sys-file-reader: Tolerate missing MRSETS label source value.
Bug #54724.
Thanks to Peter Lemenkov <lemenkov@gmail.com> for reporting this bug.
Ben Pfaff [Wed, 26 Sep 2018 21:04:08 +0000 (14:04 -0700)]
pspp-dump-sav: Better handle unreasonable variable label lengths.
Bug #54725.
Thanks to Peter Lemenkov for reporting this bug.
Ben Pfaff [Mon, 24 Sep 2018 06:05:22 +0000 (23:05 -0700)]
variable-parser: Fix null deref on error path in parse_DATA_LIST_vars().
Bug #54685.
Thanks to Tianxiao Gu for reporting this bug.
Ben Pfaff [Mon, 24 Sep 2018 03:42:07 +0000 (20:42 -0700)]
lexer: Add support for embedded \0 bytes and missing trailing new-line.
The lexer, at a low level, has not supported \0 bytes in the input stream
because it used such a byte as the end-of-input indicator. This caused
some awkwardness for the higher-level lexer, which had to remove and flag
\0 bytes as it read them. This caused a bug in the higher-level lexer,
which raised an error for each \0 byte it removed but did so when the
lexer was in an intermediate state, which could read uninitialized data.
This commit fixes the problem by adding support for \0 bytes to the
low-level lexer (segmenter). At the same time, it adds support for input
that doesn't end in a new-line character.
Bug #54664.
Thanks to Tianxiao Gu for reporting this bug.
Ben Pfaff [Mon, 24 Sep 2018 03:26:28 +0000 (20:26 -0700)]
DO REPEAT: Avoid relying on null terminators.
find_dummy_var() currently relies on the string passed in to have a null
terminator (even though it accepts a length). This is safe in the current
tree but an upcoming commit will not ensure that it is null-terminated, so
this commit removes the dependency.
Ben Pfaff [Mon, 24 Sep 2018 02:36:22 +0000 (19:36 -0700)]
command-name: Avoid read past end of input buffer in find_word().
When the input substring S is not null-terminated, find_word() could read
past its end looking for a non-digit. This fixes the problem.
John Darrington [Sun, 23 Sep 2018 10:49:41 +0000 (12:49 +0200)]
MATRIX DATA: Fix memory leaks
Ben Pfaff [Sun, 23 Sep 2018 04:36:10 +0000 (21:36 -0700)]
sys-file-reader: Fix null deref on bad $@Role attribute.
When a variable had a bad $@Role attribute, this was effectively read as
an attribute without any values. This is the only way to produce such an
attribute. The system file reader assumed that every attribute had at
least one value and segfaulted if $@Role did not.
This commit fixes both the ultimate cause of the segfault, by dropping
attributes with no values, and the proximate cause, by ignoring $@Role
attributes with no values. Either fix by itself would be sufficient to
avoid the segfault.
Thanks to Tianxiao Gu for reporting the problem.
Bug #54687.
John Darrington [Fri, 6 Jul 2018 14:19:24 +0000 (16:19 +0200)]
Increase the required Gtk+ version to 3.18.0
Since ssw requires this version it is not sensible for
pspp have different requirements.
* configure.ac: Update Gtk+ version number.
* INSTALL: Update Gtk+ version number.
John Darrington [Fri, 6 Jul 2018 12:13:58 +0000 (14:13 +0200)]
Recommend Gtk+ version 3.22 or later.
Adresses concern in bug #52500
* INSTALL: Add a comment about GTK+ version
John Darrington [Fri, 6 Jul 2018 10:19:45 +0000 (12:19 +0200)]
ODS reader: Deal with case where /READNAMES vs. non-unity column spans.
* src/data/ods-reader.c (ods_make_reader): Populate var_specs for the entire
column span.
* tests/language/data-io/readnames.ods: New file
* tests/automake.mk: Add it.
* tests/language/data-io/get-data-spreadsheet.at: New test.
John Darrington [Thu, 5 Jul 2018 19:14:48 +0000 (21:14 +0200)]
Change signature of sheet syntax generator function.
* src/ui/gui/psppire-import-assistant.c (sheet_spec_gen_syntax): Pass mutable string
instead of returning char *.
John Darrington [Thu, 5 Jul 2018 16:49:24 +0000 (18:49 +0200)]
Import Assistant: Disallow editing of the data sheet previewer.
* src/ui/gui/psppire-import-assistant.c (formats_page_create): Set the editable
property on the data sheet.
John Darrington [Thu, 5 Jul 2018 12:29:27 +0000 (14:29 +0200)]
Gui Import Assistant: Populate the assistant when importing spreadsheets.
* src/ui/gui/psppire-import-assistant.c
John Darrington [Wed, 4 Jul 2018 19:36:48 +0000 (21:36 +0200)]
Whitespace changes only
John Darrington [Wed, 4 Jul 2018 19:33:28 +0000 (21:33 +0200)]
Update comments.
* src/data/spreadsheet-reader.h (struct spreadsheet_read_options): Elaborate
comments.
John Darrington [Wed, 4 Jul 2018 13:55:26 +0000 (15:55 +0200)]
Import Assistant: Fix minor memory leak.
* src/ui/gui/psppire-import-assistant.c (prepare_formats_page): Reduce scope and
introduce dereference variable when no longer needed.
John Darrington [Wed, 4 Jul 2018 11:12:25 +0000 (13:12 +0200)]
Fix crash when attempting to add a new variable in the middle of the dictionary.
Fixes bug #52551.
* src/ui/gui/psppire-variable-sheet.c (change_var_property): Don't attempt to
alter a variable property if it's index is more than one below the last index.
John Darrington [Wed, 4 Jul 2018 06:33:54 +0000 (08:33 +0200)]
Updated translations from translationproject.org
* po/uk.po: Update Ukranian translation.
Friedrich Beckmann [Sun, 3 Jun 2018 21:24:54 +0000 (23:24 +0200)]
gui: fixed crash when entering data for user defined currency variable
psppire crashed when data is entered for a variable of type
user defined currency. The bug description is:
https://savannah.gnu.org/bugs/index.php?54036
which was first reported by Larissa Setzer. The reason was
that currency format was not handled as number. This patch
fixes this bug.
Ben Pfaff [Mon, 30 Apr 2018 15:15:13 +0000 (08:15 -0700)]
tests: Add missing file.
Fixes: 59e520005100 ("New command SAVE DATA COLLECTION.")
Ben Pfaff [Fri, 20 Apr 2018 06:00:41 +0000 (23:00 -0700)]
New command SAVE DATA COLLECTION.
Requested by Dave Trollope.
Ben Pfaff [Mon, 30 Apr 2018 00:15:54 +0000 (17:15 -0700)]
Make libxml2 a required build dependency.
This makes the logic for what is required versus optional much simpler. An
upcoming commit will introduce a new libxml2 user.
Ben Pfaff [Wed, 21 Feb 2018 19:40:26 +0000 (11:40 -0800)]
SAVE TRANSLATE: Allow variable names with space, etc. in output.
The SPSS manuals actually document this to work and I've never noticed
before. This fixes the feature omission.
Reported by Elio Spinello <elio@drspinello.com>.
Ben Pfaff [Wed, 21 Feb 2018 19:33:23 +0000 (11:33 -0800)]
lexer: Fix implementation of lex_force_string_or_id().
Change a test to make sure that it works.
Found by inspection.
John Darrington [Sun, 24 Dec 2017 10:02:16 +0000 (11:02 +0100)]
Updated hungarian translation from translationproject.org
Friedrich Beckmann [Mon, 27 Nov 2017 09:56:33 +0000 (10:56 +0100)]
k-means dialog - number of clusters gtkentry field not visible
The gtkentry field for the number of clusters in the k-means dialog
has a width of zero.
Number entries in this field are not visible with this width, although
the edit is done. I changed the width_chars to 5. Then the field is
visible in the dialog.
John Darrington [Fri, 24 Nov 2017 23:16:54 +0000 (00:16 +0100)]
psppire_data_window: Don't crash when trying to delete cases when none are selected
John Darrington [Fri, 24 Nov 2017 23:11:28 +0000 (00:11 +0100)]
psppire_data_editor: Don't crash when trying to insert when no variable or case is selected
John Darrington [Wed, 15 Nov 2017 06:33:24 +0000 (07:33 +0100)]
Frequencies Piecharts (gui): Emit 'NOMISSING' when appropriate.
Fixes bug #52394.
John Darrington [Fri, 6 Oct 2017 09:46:40 +0000 (11:46 +0200)]
Fix compiler warning
John Darrington [Fri, 6 Oct 2017 09:46:27 +0000 (11:46 +0200)]
Avoid compiler warnings when building without readline
John Darrington [Thu, 5 Oct 2017 18:11:18 +0000 (20:11 +0200)]
Recent spread-sheet-widget to version 0.2
John Darrington [Thu, 5 Oct 2017 08:16:08 +0000 (10:16 +0200)]
Provide wrapper for gtk_menu_popup_at_pointer.
This should keep older versions of Gtk+ happy. Tested on Gtk+-3.18
John Darrington [Fri, 29 Sep 2017 09:46:52 +0000 (11:46 +0200)]
Rename myreversefunc -> psppire_data_store_string_to_value
John Darrington [Wed, 27 Sep 2017 17:43:40 +0000 (19:43 +0200)]
PsppireVariableSheet: Do not immediately display dialogs of cell renderers
John Darrington [Wed, 27 Sep 2017 10:28:33 +0000 (12:28 +0200)]
Fix inappropriate comments in headers
John Darrington [Sun, 24 Sep 2017 17:27:19 +0000 (19:27 +0200)]
marshaller-list: Remove unused marshallers
John Darrington [Sun, 24 Sep 2017 16:39:33 +0000 (18:39 +0200)]
Set the variable display width instead of adding an override.
When the column width is dragged in the datasheet, instead of adding
a size override, change the variable's display width accordingly.
Ben Pfaff [Sun, 24 Sep 2017 02:46:12 +0000 (19:46 -0700)]
psppire-window: Avoid writing null pointer constant as '\0'.
Found by GCC 7.2.
Ben Pfaff [Sun, 24 Sep 2017 02:45:24 +0000 (19:45 -0700)]
psppire-delimited-text: Clear entire 'cache_starts' buffer.
The buffer is an array of 512 elements, not 512 bytes.
Found by GCC 7.2.
Ben Pfaff [Sun, 24 Sep 2017 02:44:48 +0000 (19:44 -0700)]
Avoid unfounded warnings from GCC 7.2.
GCC thinks that these printf formats can produce output longer than the
buffer that is available for them. I think that it is wrong, but it is
easy enough to use larger (or variable-length) buffers, so this commit
does that.
Ben Pfaff [Sun, 24 Sep 2017 02:43:45 +0000 (19:43 -0700)]
data-in: Fix parsing time delimiters in parse_date().
Found by GCC 7.1.
Reported by John Darrington.
Ben Pfaff [Wed, 20 Sep 2017 15:36:18 +0000 (08:36 -0700)]
SORT VARIABLES: Improve stability of sort.
The sort was being made "stable" by comparing variables' addresses in
memory. There's nothing particularly predictable about that, especially
from one malloc implementation to another. This commit fixes the stability
by comparing the variables' dictionary indexes instead.
Bug #52072.
Ben Pfaff [Sat, 23 Sep 2017 17:47:09 +0000 (10:47 -0700)]
scan: Add cast to silence Clang warning about converting enum types.
Ben Pfaff [Sat, 23 Sep 2017 17:46:50 +0000 (10:46 -0700)]
psppire-output-view: Use correct enumeration type in call.
gtk_widget_override_background_color() takes GtkStateFlags, not
GtkStateType.
Found by Clang.
Ben Pfaff [Sat, 23 Sep 2017 17:44:01 +0000 (10:44 -0700)]
cairo-chart: Make it clear that fabs() of integer values is intended.
Reported by Clang.
Ben Pfaff [Sat, 23 Sep 2017 17:40:37 +0000 (10:40 -0700)]
PRINT: Remove unused function.
Reported by Clang.
Ben Pfaff [Sat, 23 Sep 2017 17:40:10 +0000 (10:40 -0700)]
pc+-file-reader, sys-file-reader: Fix misuses of zero as null pointer.
Found by Clang.
Reported by Friedrich Beckmann.
Bug #52045.
Ben Pfaff [Sat, 23 Sep 2017 17:38:30 +0000 (10:38 -0700)]
float-format: Remove unused functions.
Reported by Clang.
Ben Pfaff [Sat, 23 Sep 2017 17:37:35 +0000 (10:37 -0700)]
compiler: Fix test for "optimize" attribute.
This was introduced with GCC 4.4. This fixes build warnings compiling with
Clang, which pretends to be GCC 4.3 and does not support the "optimize"
attribute.
Ben Pfaff [Fri, 22 Sep 2017 20:48:16 +0000 (13:48 -0700)]
po: Update translations from translationproject.org.
John Darrington [Fri, 22 Sep 2017 11:55:43 +0000 (13:55 +0200)]
PsppireDataStore (myreversefunc): Insert variables if attempting to access variable beyond the last
John Darrington [Mon, 18 Sep 2017 08:55:46 +0000 (10:55 +0200)]
uint -> guint
Friedrich Beckmann [Sun, 17 Sep 2017 07:16:23 +0000 (09:16 +0200)]
changed abs to labs function to avoid warning
During compilation on MacOS with clang I saw a warning about
a type mismatch for the abs function. I adapted the function
from abs to labs.
Friedrich Beckmann [Sat, 16 Sep 2017 09:25:13 +0000 (11:25 +0200)]
removed duplicate const declaration
During clang compilation the following warning
duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
extern const char const examples_dir[];
^
is shown. I removed the duplicate const declaration to avoid the
warning.
John Darrington [Sat, 16 Sep 2017 14:44:29 +0000 (16:44 +0200)]
Disable drag and drop on sheet axes for which there is no connected signal
John Darrington [Thu, 14 Sep 2017 06:58:05 +0000 (08:58 +0200)]
Set the "editable" properties of the sheets to TRUE
John Darrington [Wed, 13 Sep 2017 08:22:51 +0000 (10:22 +0200)]
Fix some compiler warnings
John Darrington [Wed, 13 Sep 2017 07:56:32 +0000 (09:56 +0200)]
PsppireImportAssistant.c: Remove unused function
John Darrington [Tue, 12 Sep 2017 04:57:08 +0000 (06:57 +0200)]
PsppireDataSheet.c: Indicate filtered out cases in the row headers
John Darrington [Sun, 10 Sep 2017 18:11:13 +0000 (20:11 +0200)]
Merge remote-tracking branch 'origin/sheet'
John Darrington [Sat, 9 Sep 2017 18:44:44 +0000 (20:44 +0200)]
src/output/cairo.c (xr_chart_renderer): Set the chart size to 0.8 of the smallest page dimension
John Darrington [Sat, 9 Sep 2017 17:46:58 +0000 (19:46 +0200)]
src/output/cairo.c (xr_chart_render): New variable chart_height
Ben Pfaff [Sun, 10 Sep 2017 17:31:59 +0000 (10:31 -0700)]
pspp.appdata.xml: Update and upgrade.
I added a number of elements suggested by Richard Hughes way back in
August 2016, plus some automatically added by "appstream-util upgrade".
It looks like the whole file changed because appstream-util reindented it,
but if you view ignoring white space changes you can see that the actual
changes are much smaller.
Friedrich Beckmann [Sun, 10 Sep 2017 12:12:18 +0000 (14:12 +0200)]
Revert "Revert "Revert "added a description how to update linux distributions"""
This reverts commit
d7e52c8488b7cc4b7352f2057922c779b6ee25b1.
Friedrich Beckmann [Sun, 10 Sep 2017 12:11:45 +0000 (14:11 +0200)]
Revert "GNU/Linux installation/update - Use GNU/Linux wording - Remove Ubuntu"
This reverts commit
3d183ce2adfc32a104c91baa3ab5909d6f7afaa1.
Ben Pfaff [Thu, 7 Sep 2017 14:55:04 +0000 (07:55 -0700)]
Update translations from translationproject.org.
Friedrich Beckmann [Thu, 7 Sep 2017 14:43:53 +0000 (16:43 +0200)]
GNU/Linux installation/update - Use GNU/Linux wording - Remove Ubuntu
I changed the wording to GNU/Linux throughout the text and removed
the reference to Ubuntu.
Friedrich Beckmann [Thu, 7 Sep 2017 14:26:05 +0000 (16:26 +0200)]
Revert "Revert "added a description how to update linux distributions""
This reverts commit
ad4f9604cc877272fe504234e8b9078a7ce76e17.
John Darrington [Wed, 6 Sep 2017 09:27:59 +0000 (11:27 +0200)]
Focus the sheet when the user hits enter in the datum entry
John Darrington [Wed, 6 Sep 2017 09:27:21 +0000 (11:27 +0200)]
PsppireValueEntry: New signal - edit-done
John Darrington [Wed, 6 Sep 2017 09:23:45 +0000 (11:23 +0200)]
Whitespace changes
John Darrington [Wed, 6 Sep 2017 06:53:54 +0000 (08:53 +0200)]
PsppireDataEditor: focus the datum entry widget when F2 is pressed
John Darrington [Tue, 5 Sep 2017 06:04:45 +0000 (08:04 +0200)]
Emit the "items-changed" signal upon data_store_set_value
John Darrington [Tue, 5 Sep 2017 06:01:39 +0000 (08:01 +0200)]
Fix memory leak
Ben Pfaff [Mon, 4 Sep 2017 17:04:09 +0000 (10:04 -0700)]
Correct URL in documentation.
Ben Pfaff [Mon, 4 Sep 2017 16:57:39 +0000 (09:57 -0700)]
Improve bug reporting documentation, and mention pspp-security list.
John Darrington [Mon, 4 Sep 2017 16:40:02 +0000 (18:40 +0200)]
Set the cell value when the reference entry changes
John Darrington [Mon, 4 Sep 2017 06:51:28 +0000 (08:51 +0200)]
Whitespace changes only
John Darrington [Mon, 4 Sep 2017 06:45:07 +0000 (08:45 +0200)]
Make the default view the variable view instead of the data view
John Darrington [Sun, 3 Sep 2017 08:04:41 +0000 (10:04 +0200)]
examples/physiology.sav: Set the display width of the 'sex' variable.
John Darrington [Sun, 3 Sep 2017 08:42:00 +0000 (10:42 +0200)]
Revert "added a description how to update linux distributions"
This reverts commit
0ec7c606844768cfc501d6213ffa17ebdfda1bab.
John Darrington [Sun, 3 Sep 2017 08:03:02 +0000 (10:03 +0200)]
PsppireDict: Add a quarter of a unit to the displayed width.
This avoids the text appearing cramped.
John Darrington [Sun, 3 Sep 2017 07:51:27 +0000 (09:51 +0200)]
Whitespace changes only
John Darrington [Sat, 2 Sep 2017 20:29:15 +0000 (22:29 +0200)]
Recent the dependency on spread-sheet-widget
John Darrington [Sat, 2 Sep 2017 19:22:38 +0000 (21:22 +0200)]
Honour the display width variable property
John Darrington [Sat, 2 Sep 2017 18:42:53 +0000 (20:42 +0200)]
Cope with changes to ssw_axis_model (upstream)
Friedrich Beckmann [Sat, 2 Sep 2017 08:51:47 +0000 (10:51 +0200)]
added a description how to update linux distributions
The usual way to obtain pspp in linux distributions is to
use the pspp version which is part of the distribution. I
described ways to update the pspp version by using backports,
a ppa or creating a new binary package from a source package.
John Darrington [Thu, 31 Aug 2017 06:41:38 +0000 (08:41 +0200)]
Merge remote-tracking branch 'origin/master' into sheet
Ben Pfaff [Mon, 28 Aug 2017 15:38:07 +0000 (08:38 -0700)]
tests: Add pspp-convert.at to Git.
This was accidentally omitted from the repository.
Ben Pfaff [Sun, 27 Aug 2017 19:48:58 +0000 (12:48 -0700)]
Release version 1.0.1.
Ben Pfaff [Sun, 27 Aug 2017 19:42:09 +0000 (12:42 -0700)]
po: Update translations from translationproject.org.
Ben Pfaff [Sun, 27 Aug 2017 19:31:05 +0000 (12:31 -0700)]
sys-file-reader: Avoid assert-fail for duplicate attribute names.
CVE-2017-12961.
See also https://bugzilla.redhat.com/show_bug.cgi?id=
1482436.
See also http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-12961.
See also http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12961.
Found by team OWL337, using the collAFL fuzzer.
Ben Pfaff [Sun, 27 Aug 2017 19:30:50 +0000 (12:30 -0700)]
sys-file-reader: Better handle duplicate names without long names.
The reader did not properly handle the case where variable short names
had duplicates and the system file did not include long names. In this
case, the reader still tried to use the (duplicate) short names as the
long names, which could in some cases cause a secondary name collision in
the no-long-names case in parse_long_var_names(), and assert-failed.
This commit first fixes the handling of duplicate short names: it sets
the long name to the unique chosen short name, instead of the original
duplicate short name. Then as an additional measure it refactors the code
a little to always handle duplicates in rename_var_and_save_short_names().
I am not sure that that is necessary but it's a little bit of a code
cleanup anyhow.
CVE-2017-12960.
See also https://bugzilla.redhat.com/show_bug.cgi?id=
1482433.
See also http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-12960.
See also http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12960.
Found by team OWL337, using the collAFL fuzzer.
Ben Pfaff [Sun, 27 Aug 2017 19:30:30 +0000 (12:30 -0700)]
sys-file-reader: Fully verify multiple response set names.
Until now, the code only checked the first character of the name, which
made it possible to assert-fail when the mrset was actually added.
CVE-2017-12959.
See also https://bugzilla.redhat.com/show_bug.cgi?id=
1482432.
See also http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-12959.
See also http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12959.
Found by team OWL337, using the collAFL fuzzer.
Ben Pfaff [Sun, 27 Aug 2017 19:32:50 +0000 (12:32 -0700)]
data-out: Pass correct width to value_str() in output_AHEX().
AHEX16 is short enough to work as a short string, but output_AHEX() was
treating it as a long string, which caused string data to be dereferenced
as a pointer.
CVE-2017-12958.
See also https://bugzilla.redhat.com/show_bug.cgi?id=
1482429.
See also http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-12958.
See also http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12958.
Found by team OWL337, using the collAFL fuzzer.
Ben Pfaff [Sat, 26 Aug 2017 23:33:01 +0000 (16:33 -0700)]
pspp-convert: Fix crash when the output file cannot be created.