8.4.1
Over the last ten months, our team has focused on a significant issue affecting application stability: memory management. Almost all (96%) of our problems stemmed from insufficient memory management.
With version 8.4.1, we aim for enhanced stability that RunScore has never experienced. We fixed 157 issues spanning memory modernization, runtime validation, entries processing, the Enter screen, and a new results management feature.
Main Changes
- Memory management modernization
- Runtime Validation rework based on user feedback
- Entries processing bug fixes and improvements
- Enter screen bug fixes and improvements
- New feature: results management
Important Notice: SDL Checks
The SDL checks implement additional security measures at runtime to ensure the application does not perform actions outside the allocated memory space.
This is important because the LINE FEED command "appeared to work" in the previous version, but in reality, the code accessed memory outside the allocated range. Such issues can lead to crashes, data corruption, and security vulnerabilities.
The correct usage is: LINE FEED 2
Runtime Validator Improvements
- The RunScore was improved to help users detect errors in listing files.
- We added the ability to detect if a command is missing an argument. If so, the default argument will be used (empty for strings, zero for numbers, and false for flags). The user will be informed about this.
- We have replaced the pop-ups with a carousel gadget, which will briefly describe the encountered issue.
- We added event logs containing detailed information about the issue and the event code.
- We added the event code table in the help manual with instructions on how to solve the issue.
- We introduced a runtime handler for processing the Entries.ini file (for instance, incorrectly formatted race dates or missing Age and Birthdate fields).
Critical-Priority Issues
- SDL issues: Resolved all security-related problems in the RunScore code, including buffer overflows and out-of-bounds access.
- Command suggestion for file edit: Fixed memory corruption when the Command Search feature copied a mismatched vector size.
- Fixed the operations in Entries.DTA: Not all code was invoking the correct system calls designed for shared files.
- Fixed auto-run and incremental upload: The functionality was not thread-safe, leading to unpredictable results.
High-Priority Bug Fixes
- Fixed parameters handling that led to "Warning: cannot find the file."
- Fixed the label printer destination when the printer controller disregarded user instructions.
- Fixed issues related to Server-Client interaction and connectivity.
- The server will drop all connections with Clients if one is disconnected.
- The client was not checking the send and receive TCP/IP function returns.
- The connectivity gadget was not in sync with the actual connection status.
- Fixed the WinHttpReceiveResponse issue so users receive the correct error message.
- Fixed memory leaks and corruption for Announcer, Live Results, SMS LookUp, Enter screen DB search, command search, and Entries.ini processing.
- Fixed 50 distinct BugSplat crash reports
Medium-Priority Bug Fixes
- Fixed printer margin commands for label printing.
- Fixed proper text formatting (e.g., addresses like "321 Pine St SE").
- We added 268 unit tests with 1435 assertions (689 total unit tests with 3963 assertions).
- Design screen bug fixes
- Fixed promo code retrieval from RaceRoster
- Header title initialization for print or online reports
- Fixed destination command handling
- Updated URN usage: the default is 0; negative profile values change to zero
- Fixed team place command processing
New Features and Improvements
- Added ability to keep results on DB clean; users can select: always keep, always delete, or always ask.
- Increased SMS length from 80 to 160
- Added the ability to select from available results in the "View Online Results" feature (RaceRoster online system)
Deprecated Functionality
- The RunScore SMTP (email) service has been deprecated in version 8.4.1. It is advisable to utilize Race Roster email campaigns with results or consider SendGrid as an alternative. The functionality was removed in 8.4.2.