What's Changed
This release fixes 17 security advisories and several smaller issues.
In addition, it provides some smaller updates and improvements:
- fix build of training tool on windows with VS2022: by @zdenop in #4590
- arch,viewer: add missing and by @tachalorah in #4592
- Fix recursive static initialization in SIMDDetect::GetDetector() by @stweil with @Copilot in #4598
- exports GetDetector() from the tesseract DLL, so linker can resolve it. by @zdenop in #4602
- Fix two \param names that refer to the member, not the argument by @darkdi in #4594
- Add new GitHub workflow which checks commits in a pull request by @stweil in #4604
- Build unit tests without training tools by @stweil in #4596
- docs: update dead Tesseract training docs link by @yzxcj797 in #4605
- Fix several high and medium priority issues reported by Coverity Scan by @stweil in #4597
- Fix Coverity warnings by @stweil in #4606
- Avoid quadratic paragraph restart scan by @ilkecan in #4599
- Bump actions/checkout from 4 to 7 by @dependabot[bot] in #4607
- Fix GitHub AI findings from 'Security and quality' by @stweil in #4613
- Fix inefficient empty string test in ScrollView menus by @stweil in #4612
- Fix some issues reported by Coverity by @stweil in #4611
- fix: prevent out-of-bounds read in UNICHAR::UTF8ToUTF32 by @SomSamantray in #4609
- fix: prevent out-of-bounds access on truncated UTF-8 strings and crafted index maps by @stweil in #4617
- Avoid redundant result iterator restarts by @ilkecan in #4601
- fix: potential memory leak by @y1lan in #4622
- Avoid float overflow for unclassified-word certainty by @stweil in #4630
- Reject int-mode weight matrices with zero inputs in the deserializer by @stweil in #4644
- Fix position-dependent paragraph bounding box by @stweil in #4632
- Reject negative/oversized class ids in legacy inttemp by @stweil in #4640
- Exit child process when execvp fails by @Ramya-9353 in #4577
- Neutralise file-sourced pointers in ReadAdaptedClass before use by @stweil in #4645
- Fix Devanagari font download URL by @SKSavale in #4654
- cmake: allow unit tests to use installed GoogleTest by @manduinca in #4650
- Reject malformed dimensions in GENERIC_2D_ARRAY deserialization by @stweil in #4649
- ccstruct: fix leak of orphaned outline cycles in EliminateDuplicateOutlines by @stweil in #4655
- Fix double-free/UAF in AppendLinePolygon for RTL PAGE XML output by @stweil in #4647
- wordrec: bound seam search to prevent timeouts on degenerate input by @stweil in #4656
- lstm: reject old-format WeightMatrix instead of aborting by @stweil in #4657
- wordrec: add a per-pass seam search budget to bound many-word timeouts by @stweil in #4659
- Reject out-of-range null_char in LSTM model load by @stweil in #4642
- Harden class-id handling in the int/adaptive classifier by @stweil in #4639
- Reject int-mode weight matrices with a short scale vector by @stweil in #4641
- Reject a recoder whose code range exceeds the network output count by @stweil in #4643
- Skip unit tests when their traineddata model is missing by @stweil in #4646
- nsis: rewrite winpath helper without a fixed-size buffer by @stweil in #4661
- Fix C++17 build of constexpr FCOORD operators by @stweil in #4665
- Fix use-after-free in ReplaceCurrentWord with several languages by @mardgez in #4667
New Contributors
- @tachalorah made their first contribution in #4592
- @darkdi made their first contribution in #4594
- @yzxcj797 made their first contribution in #4605
- @ilkecan made their first contribution in #4599
- @SomSamantray made their first contribution in #4609
- @y1lan made their first contribution in #4622
- @SKSavale made their first contribution in #4654
- @manduinca made their first contribution in #4650
- @mardgez made their first contribution in #4667
Full Changelog: 5.5.3...5.5.4