Skip to content

Marked txm_module_object_deallocate as deprecated#559

Open
fdesbiens wants to merge 1 commit into
eclipse-threadx:devfrom
fdesbiens:fdesbiens/deprecate-txm-module-object-deallocate
Open

Marked txm_module_object_deallocate as deprecated#559
fdesbiens wants to merge 1 commit into
eclipse-threadx:devfrom
fdesbiens:fdesbiens/deprecate-txm-module-object-deallocate

Conversation

@fdesbiens

@fdesbiens fdesbiens commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

txm_module_object_deallocate() is deprecated. The Module Manager dispatch layer already releases pool memory automatically after every successful tx_*_delete() call from a module. There is no scenario in which a module should call txm_module_object_deallocate() explicitly.

Calling it on a live kernel object (before the corresponding tx_*_delete()) is a use-after-free defect: pool memory is freed while the kernel still holds a reference to the object.

Changes

common_modules/module_lib/src/txm_module_object_deallocate.c

  • Added a prominent deprecation comment block explaining the reason and risk.
  • Added a #pragma message compile-time warning so that any module that compiles this translation unit receives an explicit notice at build time.

common_modules/module_manager/src/txm_module_manager_object_deallocate.c

  • Updated the internal DESCRIPTION block to state that this function must not be called directly and that calling it on a live object causes a use-after-free.

Credit

The use-after-free risk associated with calling txm_module_object_deallocate() on a live kernel object was originally identified and reported by @Hack1ll. The report was reviewed and classified as misuse of a deprecated API rather than an exploitable vulnerability, but it prompted this documentation and code hardening effort.

Companion

Docs update: eclipse-threadx/rtos-docs-asciidoc#32

Added a compile-time #pragma message warning to the module library
source so that any module that includes or compiles this file receives
an explicit deprecation notice at build time.

Updated the internal documentation block in the manager-side
implementation to explain that this function must not be called directly
and that calling it on a live object causes a use-after-free.

The Module Manager dispatch layer already releases pool memory
automatically after a successful tx_*_delete() call. Module authors
should remove any explicit call to txm_module_object_deallocate().

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

1 participant