Skip to content

Commit a8229b5

Browse files
bulislaw0xc0170
authored andcommitted
Make sure all RTOS attribute structures are 0-ed before use
1 parent 85cc9c8 commit a8229b5

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

features/FEATURE_LWIP/lwip-interface/lwip-sys/arch/lwip_sys_arch.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,8 @@ err_t sys_mbox_new(sys_mbox_t *mbox, int queue_sz) {
126126
if (queue_sz > MB_SIZE)
127127
error("sys_mbox_new size error\n");
128128

129-
mbox->post_idx = 0;
130-
mbox->fetch_idx = 0;
131-
memset(mbox->queue, 0, sizeof(mbox->queue));
129+
memset(mbox, 0, sizeof(*mbox));
132130

133-
memset(&mbox->data, 0, sizeof(mbox->data));
134131
mbox->attr.cb_mem = &mbox->data;
135132
mbox->attr.cb_size = sizeof(mbox->data);
136133
mbox->id = osEventFlagsNew(&mbox->attr);
@@ -308,7 +305,7 @@ u32_t sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg) {
308305
* err_t -- ERR_OK if semaphore created
309306
*---------------------------------------------------------------------------*/
310307
err_t sys_sem_new(sys_sem_t *sem, u8_t count) {
311-
memset(&sem->data, 0, sizeof(sem->data));
308+
memset(sem, 0, sizeof(*sem));
312309
sem->attr.cb_mem = &sem->data;
313310
sem->attr.cb_size = sizeof(sem->data);
314311
sem->id = osSemaphoreNew(UINT16_MAX, count, &sem->attr);
@@ -377,7 +374,7 @@ void sys_sem_free(sys_sem_t *sem) {}
377374
* @param mutex pointer to the mutex to create
378375
* @return a new mutex */
379376
err_t sys_mutex_new(sys_mutex_t *mutex) {
380-
memset(&mutex->data, 0, sizeof(mutex->data));
377+
memset(mutex, 0, sizeof(*mutex));
381378
mutex->attr.name = "lwip_mutex";
382379
mutex->attr.cb_mem = &mutex->data;
383380
mutex->attr.cb_size = sizeof(mutex->data);
@@ -513,12 +510,13 @@ sys_thread_t sys_thread_new(const char *pcName,
513510
void (*thread)(void *arg),
514511
void *arg, int stacksize, int priority) {
515512
LWIP_DEBUGF(SYS_DEBUG, ("New Thread: %s\n", pcName));
516-
513+
517514
if (thread_pool_index >= SYS_THREAD_POOL_N)
518515
error("sys_thread_new number error\n");
519516
sys_thread_t t = (sys_thread_t)&thread_pool[thread_pool_index];
520517
thread_pool_index++;
521-
518+
519+
memset(t, 0, sizeof(*t));
522520
t->attr.name = pcName ? pcName : "lwip_unnamed_thread";
523521
t->attr.priority = (osPriority_t)priority;
524522
t->attr.cb_size = sizeof(t->data);

rtos/MemoryPool.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class MemoryPool {
4848
MemoryPool() {
4949
memset(_pool_mem, 0, sizeof(_pool_mem));
5050
memset(&_obj_mem, 0, sizeof(_obj_mem));
51+
memset(&_attr, 0, sizeof(_attr));
5152
_attr.mp_mem = _pool_mem;
5253
_attr.mp_size = sizeof(_pool_mem);
5354
_attr.cb_mem = &_obj_mem;

0 commit comments

Comments
 (0)