diff --git a/components/libc/posix/pthreads/pthread_tls.c b/components/libc/posix/pthreads/pthread_tls.c index dc23cb763c..c14f3630ed 100644 --- a/components/libc/posix/pthreads/pthread_tls.c +++ b/components/libc/posix/pthreads/pthread_tls.c @@ -54,9 +54,7 @@ int pthread_setspecific(pthread_key_t key, const void *value) /* check tls area */ if (ptd->tls == NULL) { - ptd->tls = (void**)rt_malloc(sizeof(void*) * PTHREAD_KEY_MAX); - - rt_memset(ptd->tls, 0, sizeof(void*) * PTHREAD_KEY_MAX); + ptd->tls = (void**)rt_calloc(PTHREAD_KEY_MAX, sizeof(void*)); } if ((key < PTHREAD_KEY_MAX) && _thread_keys[key].is_used)