Menu

MAT File I/O Library / News: Recent posts

Version 1.5.28 release

Changes in matio 1.5.28 (30 October 2024)

  • Fixed bug writing MAT_T_INT8/MAT_T_UINT8 encoded character array to compressed v5 MAT file (regression of v1.5.12)
  • Fixed bug reading all-zero sparse array of v4 MAT file (regression of v1.5.18)
  • Updated C99 snprintf.c
  • CMake: Enabled testing via option MATIO_BUILD_TESTING:BOOL
  • CMake: Fixed build with Visual Studio ≥ 17.10 via option MATIO_USE_CONAN:BOOL and Conan 1.x
  • Several other fixes, for example for access violations in Mat_VarPrint
Posted by tbeu 2 days ago

Version 1.5.27 release

Changes in matio 1.5.27 (20 April 2024)

  • Fixed const-correctness of input arguments of API functions
  • Fixed const-correctness of return type of Mat_GetDir (from char** to char* const*)
  • Fixed bug duplicating function class (with deep copy) in Mat_VarDuplicate
  • Fixed little endian detection for __aarch64__ (contributed by @maltelenz)
  • Fixed LFS support on MinGW 64-bit builds (contributed by @chris-se)
  • Fixed support of Unicode filenames on Windows (contributed by @chris-se)
  • Fixed detection of HDF5 version for UTF-8 based file name of HDF5 MAT file (contributed by @chris-se)
  • Fixed stack-based buffer overflow when reading (crafted) HDF5 MAT file
  • Fixed build on Solaris
  • Fixed build with Rust bindings and LLVM ≥ 16
  • CMake: Fixed MinGW linker error with libc (regression of v1.5.24) (contributed by @chris-se)
  • CMake: Enabled static analysis with Cppcheck via option MATIO_ENABLE_CPPCHECK:BOOL
Posted by tbeu 2024-04-20

Version 1.5.26 release

Changes in 1.5.26 (12 November 2023)

  • Fixed testsuite (regression of v1.5.25)
Posted by tbeu 2023-11-12

Version 1.5.25 release

Changes in 1.5.25 (10 November 2023)

  • Fixed reading struct array with null padded class name from HDF5 MAT file
  • Fixed memory leak in Mat_VarFree for function class
  • CMake: Silence MSVC compiler warnings
Posted by tbeu 2023-11-10

Version 1.5.24 release

Changes in 1.5.24 (28 October 2023)

  • Added predicated iteration API functions Mat_VarReadNextInfoPredicate and Mat_VarReadNextPredicate to speed-up reading variables from HDF5 MAT file
  • Added new API function Mat_GetFileAccessMode to retrieve the file access mode of a MAT file
  • Changed: Mat_VarDelete returns error if MAT file is opened in read-only mode
  • Changed: Reduced memory foot-print of matvar_t.internal
  • Fixed read performance of cell/struct array from HDF5 MAT file
  • Fixed reference counting of HDF5 MAT file in Mat_VarDuplicate
  • Fixed file access mode of created v4 MAT file
  • Fixed read performance of Mat_GetDir for HDF5 MAT file
  • Fixed bug reading struct array from v5 MAT file
  • Fixed bug adding field to struct array of v5 MAT file
  • Fixed heap-based buffer overflow when reading HDF5 MAT file
  • Confirmed compatibility with HDF5 v1.14.x
  • autoconf: Enabled system extensions
  • autoconf: Fixed getopt_long check
  • autoconf: Fixed pkg-config file for static linking
  • CMake: Updated cmake-conan to version 0.18.1
  • CMake: Fixed version comparison
  • CMake: Fixed properties for CMake < 3.11
  • CMake: Fixed linker error on OpenBSD
  • CMake: Fixed checks of linker options
  • Several other fixes, for example for memory leaks
Posted by tbeu 2023-10-28

Version 1.5.22 release

Changes in 1.5.22 (25 March 2022)

  • Added support for reading large MAT file
  • Updated cmake-conan to version 0.17.0
  • Fixed CMake build with Conan (MATIO_USE_CONAN:BOOL=ON)
  • Fixed data type when reading 16-bit character data from HDF5 MAT file
  • Fixed heap-based buffer overflows when reading (crafted) MAT file (CVE-2020-36428, CVE-2021-36977)
  • Confirmed compatibility with HDF5 v1.13.0 and v1.13.1
  • Several other fixes, for example for memory leaks
Posted by tbeu 2022-03-25

Version 1.5.21 release

Changes in 1.5.21 (25 March 2021)

  • Fixed: Avoid usage of strlen when creating MAT_T_UTF8 encoded character array (regression of v1.5.20)
  • Fixed reading of compression flag from HDF5 MAT file
Posted by tbeu 2021-03-25

Version 1.5.20 release

Changes in 1.5.20 (21 March 2021)

  • Added support for writing MAT_T_UTF8 encoded character array to HDF5 MAT file (by conversion to UTF-16 if in BMP)
  • Updated cmake-conan to version 0.16.1
  • Fixed bug with size_t arguments of logging function calls
  • Fixed bug reading past EOF from (crafted) MAT file
  • Fixed bug writing MAT_T_UTF8 encoded character array to v5 MAT file
  • Fixed printing of MAT_T_UTF8 encoded character array
  • Several other fixes, for example for memory leaks
Posted by tbeu 2021-03-21

Version 1.5.19 release

Changes in 1.5.19 (6 November 2020)

  • Fixed support for CMake (>= v3.19.0) build system
  • Fixed bug reading variable from v4 MAT file (regression of v1.5.18)
Posted by tbeu 2020-11-06

Version 1.5.18 release

Changes in 1.5.18 (17 September 2020)

  • Added support of HDF5 v1.12.x
  • Added support for UTF-8 encoded file name on Windows (MSVC) (requires HDF5 >= v1.11.6 for HDF5 MAT file)
  • Added support for reading uncompressed v5 MAT file generated by SWAN
  • Added error codes to public interface
  • Added support for CMake build system
  • Fixed read performance of numeric array from compressed v5 MAT file
  • Fixed support for VS2005 and VS2008 (MSVC) (regression of v1.5.15)
  • Fixed mktemp linker warning when using GNU linker
  • Fixed bug writing struct array to uncompressed v5 MAT file on big endian architecture (regression of v1.5.10)
  • Fixed bug writing cell array to uncompressed v5 MAT file on big endian architecture
  • Fixed bug reading variable name from v4 MAT file (CVE-2019-17533)
  • Fixed bug reading dimensions from (crafted) compressed v5 MAT file (CVE-2019-20017, CVE-2019-20018, CVE-2019-20020, CVE-2019-20052)
Posted by tbeu 2020-09-17

Version 1.5.17 release

Changes in 1.5.17 (18 July 2019)

  • Fixed bug reading struct array with packed field names from v5 MAT file
  • Fixed bug reading past EOF from (crafted) uncompressed v5 MAT file
Posted by tbeu 2019-07-18

Version 1.5.16 release

Changes in 1.5.16 (25 June 2019)

  • Fixed error handling on integer addition/multiplication overflows (CVE-2019-13107) found with Mayhem by ForAllSecure
Posted by tbeu 2019-06-25

Version 1.5.15 release

Changes in 1.5.15 (29 March 2019)

  • Added new API function Mat_GetHeader to retrieve header string of a MAT file
  • Fixed integer multiplication overflows when calculating total number of elements from (crafted) MAT file
  • Fixed bug reading character array from (compressed) v5 MAT file (regression of v1.5.14)
  • Fixed number of variables for repeated calls of Mat_GetDir
  • Fixed memory leak in Mat_VarFree for function class
Posted by tbeu 2019-03-29

Version 1.5.14 release

Changes in 1.5.14 (11 March 2019)

  • Deprecated usage of Mat_VarWriteInfo/Mat_VarWriteData in favor of Mat_VarWrite/Mat_VarWriteAppend
  • Fixed bug reading dimensions from (crafted) compressed v5 MAT file
  • Fixed bug reading name (> 24 characters) from v5 MAT file (regression of v1.5.13)
  • Fixed bug printing datatype in Mat_VarPrint
Posted by tbeu 2019-03-11

Version 1.5.13 release

Changes in 1.5.13 (22 October 2018)

  • Fixed bug calculating size for zero-rank variables in Mat_VarGetSize
  • Fixed bug reading dimensions from (crafted) v5 MAT file
  • Fixed bug reading tag and class from (crafted) v5 MAT file
  • Fixed integer multiplication overflows
  • Fixed HDF5 compatibility in Mat_Open and Mat_Create for HDF5 > v1.10.1
Posted by tbeu 2018-10-23

Version 1.5.12 release

Changes in 1.5.12 (9 March 2018)

  • Updated Mat_VarWriteAppend: Added support to append a variable to a previously written struct array in HDF5 MAT file
  • Fixed bug reading MAT_T_UINT16 encoded character array from HDF5 MAT file
  • Fixed bug reading MAT_T_UTF16 encoded character array from compressed v5 MAT file
  • Fixed bug writing MAT_T_UTF16 encoded character array to HDF5 MAT file
  • Fixed buffer overflow in Mat_VarGetCells/Mat_VarGetStructs
Posted by tbeu 2018-03-09

Version 1.5.11 release

Changes in 1.5.11 (22 October 2017)

  • Added new API function Mat_VarWriteAppend to append a numeric array to a previously written variable in HDF5 MAT file
  • Fixed bug calculating sizes of cell/struct array with empty cells/fields in Mat_VarGetSize
  • Fixed bug writing cell/struct array with empty cells/fields to v5 MAT file
  • Fixed bug writing cell/struct array with empty cells/fields to HDF5 MAT file
  • Fixed read performance of cell/struct array with empty cells/fields from v5 MAT file
  • Fixed read performance of numeric array from uncompressed v5 MAT file
  • Fixed testsuite (if configured with the MATLAB application)
  • Updated man pages
Posted by tbeu 2017-10-22

Version 1.5.10 release

Changes in 1.5.10 (14 February 2017)

  • Added new API function Mat_GetDir to retrieve all variable names of a MAT file
  • Fixed performance of repeated calls to Mat_VarWrite (broken by v1.5.7)
  • Fixed bugs reading (hyperslabs of) numeric arrays where the variable data type differs from the desired output data type
  • Increased testsuite coverage
Posted by tbeu 2017-02-14

Version 1.5.9 release

Changes in 1.5.9 (22 October 2016)

  • Fixed resource leak when reading character data from HDF5 MAT file
  • Fixed bug writing struct to HDF5 MAT file: Mat_VarWrite never returned 0 on success
  • Fixed bug writing sparse logical array to HDF5 MAT file
  • Fixed bug calculating array sizes of structs, cells, complex and sparse arrays in Mat_VarGetSize
  • Fixed bug duplicating sparse array with empty data in Mat_VarDuplicate
  • Fixed segmentation fault when reading compressed v5 MAT file with opaque class
  • Updated support of HDF5 v1.10.x: No longer depend on deprecated v1.8.x symbols
Posted by tbeu 2016-10-22

Version 1.5.8 release

Changes in 1.5.8 (30 June 2016)

  • Fixed bug writing array to v4 MAT files on big endian architecture (broken by v1.5.7)
Posted by tbeu 2016-06-30

Version 1.5.7 release

Changes in 1.5.7 (22 June 2016)

  • Added support for MAT_T_UTF16 when reading character array from v5 MAT file
  • Added support of HDF5 v1.10.x (with deprecated v1.8.x symbols exported)
  • Added warning on unsupported character data types when reading v5 MAT file
  • Added error check if variable already exists when writing to MAT file
  • Fixed support of custom log functions: Moved log levels to the public interface
  • Fixed bug creating v4 and v5 MAT file: Open in write+update mode
  • Fixed bug creating v5 and HDF5 MAT file: Set BOF marker to 128
  • Fixed bug in Mat_VarDelete: Rewind file before looping over variables
  • Fixed bug writing cell array with empty struct fields to compressed v5 MAT file
  • Fixed bug reading empty character array from HDF5 MAT file
  • Fixed bug iterating through links in a group of HDF5 MAT file
  • Fixed bug iterating on #subsystem# group of HDF5 MAT file
  • Fixed compilation out of source directory
  • Fixed C++ compilation on MinGW
  • Restructured testsuite
  • Fixed testsuite if hdf5 dependency is missing
  • Increased testsuite coverage
  • Various fixes for variable scopes that cause compilers to issue diagnostics
Posted by tbeu 2016-06-22

Version 1.5.6 release

Changes in 1.5.6 (23 February 2016)

  • Fixed bug writing array to v4 MAT files on big endian architecture
  • Fixed bug writing header with more than 127 characters to v5 or HDF5 MAT files
  • Increased testsuite coverage
Posted by tbeu 2016-02-23

Version 1.5.5 release

Changes in 1.5.5 (19 February 2016)

  • Added support of reading sparse array from v4 MAT files
  • Added support of writing sparse array to v4 MAT files
  • Added support of writing character array to v4 MAT files
  • Added support of autogen.sh on Darwin
  • Added missing Visual Studio project files for test_mat
  • Added missing Visual Studio resource file
  • Enabled C++ compilation
  • Updated snprintf.c to C99 snprintf v1.1
  • Increased testsuite coverage
  • Fixed bug writing complex array to v4 MAT files
  • Fixed bug writing cell containing a struct with fields but empty array to compressed v5 MAT files
  • Fixed bug reading hyperslabs of cells and struct fields from compressed v5 MAT files (broken by v1.5.3)
  • Fixed bug writing empty character array to uncompressed v5 MAT files
  • Fixed bug reading cells and struct fields from HDF5 MAT files
  • Fixed bug printing array dimensions in Mat_VarPrint on MinGW
  • Fixed bug calculating array sizes of structs in Mat_VarGetSize
  • Fixed bug duplicating sparse array in Mat_VarDuplicate
  • Fixed testsuite if zlib/hdf5 dependencies are missing
  • Several other fixes, especially for memory leaks
Posted by tbeu 2016-02-19

Version 1.5.3 release

Changes in 1.5.3 (11 January 2016)

  • Added support for writing numeric array to v4 MAT files
  • Added Visual Studio project for test_mat
  • Added new API functions Mat_CalcSingleSubscript2 and Mat_CalcSubscripts2 that work on size_t type
  • Fixed memory consumption reading compressed v5 MAT files
  • Fixed bug writing compressed v5 MAT files
  • Fixed bug in Mat_VarReadNextInfo5 where freed variable was not set to NULL
  • Fixed several bugs in Mat_VarDelete
  • Fixed bug writing empty struct to HDF5 MAT files
  • Fixed bug writing character array to HDF5 MAT files
  • Fixed bug writing character array to compressed v5 MAT files
  • Updated Visual Studio solution and project files to work with newer HDF5 and Visual Studio versions
  • Various fixes for unused variables, unnecessary initializations, etc. that cause compilers to issue diagnostics
  • Several other fixes, especially for memory leaks
Posted by tbeu 2016-02-16

Version 1.5.2 release

Changes in 1.5.2 (31 July 2013)

  • Added support for linear data read for v4 and HDF5 MAT files
  • Fixed bug reading slices of variables in matdump
  • Fix feof calls so they compile on platforms that dereference the argument in a macro
  • More robust checking that file is MAT file and eliminates some segmentation faults
  • Various fixes for unused variables, unnecessary initializations, etc. that cause compilers to issue diagnostices
  • Several other fixes
Posted by cch 2013-07-31