Skip to content

Hardening and bugfixes - #434

Merged
leducp merged 1 commit into
masterfrom
fix_mailbox_length_validation
Aug 5, 2026
Merged

Hardening and bugfixes#434
leducp merged 1 commit into
masterfrom
fix_mailbox_length_validation

Conversation

@leducp

@leducp leducp commented Aug 4, 2026

Copy link
Copy Markdown
Owner
  • Bound every mailbox read by the buffer that carries it.
  • Add a saturating conversion to the freestanding math helpers.
  • Clamp DS402 setpoints to configurable integration limits.
  • Saturate the simulated motor feedback.
  • Fix undefined behaviour in the Timer, the ESI parser and two destructors.

@leducp
leducp requested a review from trns1997 August 4, 2026 13:20
@leducp
leducp force-pushed the fix_mailbox_length_validation branch from bbedc19 to 251ac62 Compare August 4, 2026 13:51
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

File Coverage Lines Branches
All files 85% 89% 82%
lib/include/kickcat/Error.h 91% 100% 83%
lib/include/kickcat/LockedRing.h 87% 94% 81%
lib/include/kickcat/LoopbackSocket.h 81% 82% 80%
lib/include/kickcat/SIIParser.h 78% 57% 100%
lib/include/kickcat/SimulatorControl.h 84% 97% 70%
lib/master/include/kickcat/AbstractLink.h 90% 80% 100%
lib/master/src/Bus.cc 89% 90% 88%
lib/master/src/CoE.cc 85% 90% 81%
lib/master/src/Link.cc 98% 100% 97%
lib/master/src/MailboxSequencer.cc 97% 100% 94%
lib/master/src/MasterOD.cc 99% 99% 100%
lib/master/src/Prints.cc 88% 88% 88%
lib/master/src/Slave.cc 71% 86% 56%
lib/master/src/dc.cc 76% 82% 70%
lib/master/src/CoE/CiA/DS402/Drive.cc 78% 87% 70%
lib/simulation/include/kickcat/simulation/devices/Ds402Motor.h 75% 91% 58%
lib/simulation/src/DeviceApp.cc 91% 92% 91%
lib/simulation/src/SimulatedSlave.cc 45% 55% 34%
lib/simulation/src/SimulatorControlServer.cc 91% 97% 84%
lib/simulation/src/Topology.cc 73% 70% 76%
lib/slave/src/AbstractESC.cc 92% 100% 84%
lib/slave/src/AbstractEmulatedEEPROM.cc 0% 0% 0%
lib/slave/src/ESMStates.cc 95% 98% 93%
lib/slave/src/ESM.cc 94% 100% 89%
lib/slave/src/EmulatedNetwork.cc 98% 99% 97%
lib/slave/src/PDO.cc 94% 99% 90%
lib/slave/src/ESC/EmulatedESC.cc 87% 92% 82%
lib/slave/src/ESC/Lan9252.cc 0% 0% 0%
lib/src/Frame.cc 96% 96% 97%
lib/src/Mailbox.cc 91% 96% 87%
lib/src/SIIParser.cc 93% 95% 90%
lib/src/protocol.cc 87% 84% 89%
lib/src/CoE/OD.cc 95% 95% 94%
lib/src/CoE/protocol.cc 92% 92% 92%
lib/src/CoE/CiA/DS402/StateMachine.cc 93% 94% 92%
lib/src/CoE/mailbox/request.cc 83% 85% 81%
lib/src/CoE/mailbox/response.cc 86% 92% 81%
lib/src/ESI/Parser.cc 85% 89% 81%
lib/src/ESI/SIIBuilder.cc 86% 94% 77%
lib/src/EoE/protocol.cc 0% 0% 0%

Minimum allowed coverage is 75%

Generated by 🐒 cobertura-action against e69a6de

  - Bound every mailbox read by the buffer that carries it.
  - Move the freestanding math helpers to utils/ and add a saturating conversion.
    lib/include/kickcat is on the include path, so a math.h sitting directly in it
    is what every translation unit gets for #include <math.h>.
  - Clamp DS402 setpoints to configurable integration limits.
  - Saturate the simulated motor feedback.
  - Fix undefined behaviour in the Timer, the ESI parser and two destructors.
  - Add a filesystem backend to the OS layer, on top of POSIX and Win32 directly,
    and move EmulatedESC, SimulatedSlave and the ESI benches onto it: no
    <filesystem> nor <fstream> is left in lib/, which the embedded targets compile
    too.
  - Unbuffer the unit test binary's stdout and cap the ctest run: read through
    ctest's pipe, a stalled or crashed run reported no output at all.
  - Link libstdc++ and libgcc into the Windows unit binary: it died at load with
    STATUS_ENTRYPOINT_NOT_FOUND against one of the four rival libstdc++-6.dll the
    CI runners carry on PATH.
@leducp
leducp force-pushed the fix_mailbox_length_validation branch from 7b3963f to e69a6de Compare August 5, 2026 07:45
@leducp
leducp merged commit 43ad3e9 into master Aug 5, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants