From a56d5b396b7fbdae140440314a3bf6f9bba2ab65 Mon Sep 17 00:00:00 2001 From: Francesco Date: Mon, 16 Mar 2026 23:10:36 +0100 Subject: [PATCH] refactor(stack): add missing mtx unlock --- stack/mystack.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/stack/mystack.c b/stack/mystack.c index 6241d2e..8db7774 100644 --- a/stack/mystack.c +++ b/stack/mystack.c @@ -21,6 +21,7 @@ stack_s *stack_new(size_t initial_capacity, size_t element_size) { /* Allocate the vec data */ stack->data = vec_new(initial_capacity, element_size); if (stack->data == NULL) { + mtx_destroy(&stack->lock); free(stack); return NULL; } @@ -71,7 +72,14 @@ void *stack_top(stack_s *stack) { return NULL; } - void *elem = vec_get(stack->data, stack->data->size - 1); + size_t size = vec_size(stack->data); + if (size == 0) { + mtx_unlock(&stack->lock); + + return NULL; + } + + void *elem = vec_get(stack->data, size - 1); mtx_unlock(&stack->lock); @@ -84,5 +92,6 @@ void stack_free(stack_s *stack) { } vec_free(stack->data); + mtx_destroy(&stack->lock); free(stack); }