Skip to content

Commit fc2339c

Browse files
committed
Fix double freed in remove_self_from_waiters()
free() is already invoked in list_remove(). Freeing the same pointer twice can crash the program with an invalid free error or corrupt the heap. Ensure a single memory-release path by removing the outer free() call. close #57
1 parent 295a0d9 commit fc2339c

File tree

1 file changed

+0
-1
lines changed

1 file changed

+0
-1
lines changed

kernel/mutex.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ static bool remove_self_from_waiters(list_t *waiters)
5656
while (curr && curr != waiters->tail) {
5757
if (curr->data == self) {
5858
list_remove(waiters, curr);
59-
free(curr);
6059
return true;
6160
}
6261
curr = curr->next;

0 commit comments

Comments
 (0)