Skip to content

Commit 9ee2738

Browse files
Improved the logic to validate object from application in ThreadX Module (#307)
1 parent bc4bd80 commit 9ee2738

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

common_modules/module_manager/inc/txm_module_manager_util.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
/* COMPONENT DEFINITION RELEASE */
2727
/* */
2828
/* txm_module_manager_util.h PORTABLE C */
29-
/* 6.1.6 */
29+
/* 6.x */
3030
/* AUTHOR */
3131
/* */
3232
/* Scott Larson, Microsoft Corporation */
@@ -44,6 +44,9 @@
4444
/* 04-02-2021 Scott Larson Modified comment(s) and */
4545
/* optimized object checks, */
4646
/* resulting in version 6.1.6 */
47+
/* xx-xx-xxxx Tiejun Zhou Modified comment(s) and */
48+
/* improved object check, */
49+
/* resulting in version 6.x */
4750
/* */
4851
/**************************************************************************/
4952

@@ -100,13 +103,15 @@
100103

101104
/* Kernel objects should be outside the module at the very least. */
102105
#define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, obj_ptr, obj_size) \
103-
((TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size)) || \
106+
(TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size) || \
107+
(_txm_module_manager_created_object_check(module_instance, (void *)obj_ptr) == TX_FALSE) || \
104108
((void *) (obj_ptr) == TX_NULL))
105109

106110
/* When creating an object, the object must be inside the object pool. */
107111
#define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, obj_ptr, obj_size) \
108112
((TXM_MODULE_MANAGER_ENSURE_INSIDE_OBJ_POOL(module_instance, obj_ptr, obj_size) && \
109113
(_txm_module_manager_object_size_check(obj_ptr, obj_size) == TX_SUCCESS)) || \
114+
(_txm_module_manager_created_object_check(module_instance, (void *)obj_ptr) == TX_FALSE) || \
110115
((void *) (obj_ptr) == TX_NULL))
111116

112117
/* Strings we dereference can be in RW/RO/Shared areas. */

0 commit comments

Comments
 (0)