RTEMS | cpukit/libmisc: The regulator asserts on two error paths (#5747)

Sebastian Huber (@sebhub) gitlab at rtems.org
Thu Sep 3 02:36:20 UTC 2026



Issue created by Sebastian Huber: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5747



The output thread of a regulator takes messages from the queue until the queue
is empty or it reaches the count of the period. An empty queue answers
`RTEMS_UNSATISFIED` and the loop takes that answer as the end of the deliveries
of this period. The thread also asserts that the answer is `RTEMS_SUCCESSFUL`,
so a debug build ends `regulator01` with a failed assertion.

`rtems_regulator_create()` calls `_Regulator_Free_helper()` on every error
path. The helper deletes the task, the message queue and the partition
without a check. An error before the create of one of them leaves its
identifier at zero,
the delete then returns `RTEMS_INVALID_ID` and a debug build ends
`regulator01` with a failed assertion. The helper also loses the storage of the
message queue where the construct of the queue failed.

The output thread ends itself where it cannot create its period. The helper
then deletes a task which no longer exists and hits the same assertion.

Found while running the test suite with `RTEMS_DEBUG`. This description was
created with Claude Code assistance.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5747
You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/sent_notifications/5-f2qi42z74ivz2fjorc3du7rtn-1d/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20260903/29306ff4/attachment.htm>


More information about the bugs mailing list