Skip to content

Releases: ketiltrout/getdata

GetData-0.11.0

13 Nov 01:44
Compare
Choose a tag to compare

New in version 0.11.0:

Library Changes:

  • BUG FIX: When using a bzipped /REFERENCE field, mixing gd_nframes()
    calls with reads of data from that field no longer results in
    subsequent reads to occur in the wrong place. Reported by Matthew
    Petroff.

  • BUG FIX FOR CVE-2021-20204: The first RAW field in a Dirfile having
    the same name as a previously defined field no longer results in a
    segmentation fault when trying to access the Dirifle's reference
    field.

    By default, the parser will return a syntax error (GD_E_FORMAT)
    when encountering a duplicate field name, making the DIRFILE
    invalid and avoiding the segmentation fault. To trigger the
    segmentation fault, the standard GD_E_FORMAT error return
    must be avoided, by doing one of the following:

    • The GD_IGNORE_DUPS flag must be used when invoking the format
      file parser. This stops the parser from generating an error
      when discarding out the duplicate field.
    • A caller-supplied parser callback must return GD_SYNTAX_IGNORE
      when passed the GD_E_FORMAT error generated by the duplicate
      field. (This is what happens in the checkdirfile utility,
      which is why it is affected by this bug.)

    Ref: CVE-2021-20204: Use After Free in libgetdata parser

API Changes:

  • A new function gd_open_limit() can be used to limit the number of
    open file descriptors used by the library to access RAW data in
    a given DIRFILE. GetData will try to keep under the limit by
    automatically closing RAW fields when necessary. Note: the
    library may exceed the limit in certain cases. See the man
    page for full details.

  • A number of symbols, which were deprecated in GetData-0.8,
    have been removed. This removal extends to the corresponding
    symbols in the bindings. The removed symbols, and their
    replacements, are:

    Removed symbol Replacement
    GD_FLOAT GD_FLOAT32
    GD_DOUBLE GD_FLOAT64
    GD_E_BAD_ENDIANNESS GD_E_ARGUMENT
    GD_E_BAD_PROTECTION GD_E_ARGUMENT
    GD_E_BAD_VERSION GD_E_ARGUMENT
    GD_E_FORMAT_NO_PARENT GD_E_FORMAT_NO_FIELD
    gd_bit_t int
    gd_spf_t unsigned int

    NOTE: The Python bindings have a different FLOAT type alias which
    corresponds to the native float type in Python. That symbol is
    not deprecated and has not been removed.

  • BUG FIX: Lingering references to the type gd_shift_t, which was
    deprecated in GetData-0.10.0 and replaced by gd_int64_t, have been
    removed from the API.

Bindings Changes:

  • PYTHON BUG FIX: When first_sample is non-zero, and neither num_frames
    nor num_samples is indicated dirfile.getdata() no longer attempts to
    read past the end of the data file. Patch from Matthew Petroff.

Miscellaneous

  • Running make clean no longer accidentally deletes most of the man pages
    from the man/ subdirectory.

  • New options --with-pcre and --without-pcre have been added to ./configure
    to adjust how the PCRE library is (or is not) used.

  • Modules now link to the main getdata library to avoid the potential for
    symbol look-up errors on load. Reported by Matthew Petroff.