DataReel 6.2 Release Notes
DataReel 6.2 Release Notes, 10/25/2026
DataReel version 6.2 (was 6.1) DataReel Copyright (c) 2001-2026 DataReel Software Development
DataReel 6.2 adds more fixes for damaged or crafted database and index files found by the security review of the Encrypted Password Database, a new gxDatabase::SetWriteHook() function, wxWidgets 3 header fixes and a CMake build. Every change in the source is marked with a "10/25/2026" comment.
The library version in version.txt is 6.2 and the shared library version (SHAREDLIB_VERSION in env/linux.env) is 6.2, so the Linux shared library is built as libdatareel.so.6.2. gxDatabase has two new members, so programs must be recompiled against the 6.2 headers and relinked.
Security Fixes
- gxBtree search, insert and delete walks stop with gxDBASE_BADBLOCK_ERROR after gxBtreeMaxNodeReads (4096) node reads, so a node in a damaged or crafted index file that points back up the tree cannot make them loop forever. The BtreeCache variants are not changed.
- InfoHog Find(), CompareIndex() and RebuildIndexFile() no longer loop forever on a data file block length shorter than a block header, and skip objects that cannot be read instead of using the key member of a failed read.
New Function
- gxDatabase::SetWriteHook() sets a function that is called after each successful Write(), so an application can tell its own changes to a file from changes made by others. The Encrypted Password Database uses it to update its database MAC.
wxWidgets 3
- wx3incs.h: the include guard tested __GX_WX3NCS_HPP__ but defined __GX_WX3INCS_HPP__, so the header was never guarded.
- gxshtml.cpp: the wxWidgets 3.x code included wx2incs.h instead of wx3incs.h, and called wxYield() even when __GUI_THREAD_SAFE__ was not defined. wxYield() from a worker thread is not allowed in wxWidgets 3.
- "defined (__wxWIN201__) || (__wxWIN291__)" tested the value of __wxWIN291__ instead of whether it is defined. Both now use defined().
- The new __wxWIN3__ macro selects the wxWidgets 3.x code for any 3.x release (3.0 through 3.3). It is interchangeable with __wxWIN302__, so existing code is unchanged.
CMake Build
- A CMakeLists.txt in the top-level directory builds the same objects as the makefiles into a static library (DataReel::datareel) on Linux and Windows, with options for SSL (OpenSSL, Schannel or none), console or wxWidgets message display, the 64-bit database engine and native types. See "BUILDING WITH CMAKE" in README.txt. The makefiles are unchanged.
How The Changes Were Tested
- An index file whose node points to itself is rejected with an error instead of looping, and the database examples give the same results as with 6.1.
- On RHEL 10 the library builds with no warnings with the makefiles and with CMake, and the example and utility programs build against it.
Documentation
- Historical references to version 5 were reworded, the documentation footers read DataReel 6.2, and the Cluster Manager page describes DRCM 1.42.
DataReel Copyright (c) 2001-2026 DataReel Software Development