lib: libc: minimal: add check on returned value

Fix #32938 [Coverity CID :219508] "Unchecked return value in
lib/libc/minimal/source/stdlib/malloc.c"

The Coverity complains about sys_mutex_lock() which returns 0 if
locked. I added also the same check on returned value for
sys_mutex_unlock() which returns 0 if unlocked.

Signed-off-by: Guðni Már Gilbert <gudni.m.g@gmail.com>
This commit is contained in:
Guðni Már Gilbert 2021-03-05 18:35:28 +00:00 committed by Carles Cufí
commit 952970d6cb

View file

@ -51,7 +51,12 @@ void *malloc(size_t size)
errno = ENOMEM;
}
sys_mutex_unlock(&z_malloc_heap_mutex);
int unlock_ret = sys_mutex_unlock(&z_malloc_heap_mutex);
CHECKIF(unlock_ret != 0) {
return NULL;
}
return ret;
}
@ -74,22 +79,31 @@ void *realloc(void *ptr, size_t requested_size)
}
void *ret = sys_heap_aligned_realloc(&z_malloc_heap, ptr,
__alignof__(z_max_align_t),
requested_size);
__alignof__(z_max_align_t),
requested_size);
if (ret == NULL && requested_size != 0) {
errno = ENOMEM;
}
sys_mutex_unlock(&z_malloc_heap_mutex);
int unlock_ret = sys_mutex_unlock(&z_malloc_heap_mutex);
CHECKIF(unlock_ret != 0) {
return NULL;
}
return ret;
}
void free(void *ptr)
{
sys_mutex_lock(&z_malloc_heap_mutex, K_FOREVER);
int lock_ret = sys_mutex_lock(&z_malloc_heap_mutex, K_FOREVER);
CHECKIF(lock_ret != 0) {
return;
}
sys_heap_free(&z_malloc_heap, ptr);
sys_mutex_unlock(&z_malloc_heap_mutex);
(void) sys_mutex_unlock(&z_malloc_heap_mutex);
}
SYS_INIT(malloc_prepare, APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT);