From 698c471f176d84755fdfddfe673d85355bc40eb4 Mon Sep 17 00:00:00 2001 From: waddlesplash Date: Mon, 22 Jul 2019 20:41:00 -0400 Subject: [PATCH] kernel/sem: Restore interrupts-unlock before free(). --- src/system/kernel/sem.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/sem.cpp b/src/system/kernel/sem.cpp index 8f7be82303..fb8f3c4488 100644 --- a/src/system/kernel/sem.cpp +++ b/src/system/kernel/sem.cpp @@ -355,7 +355,7 @@ delete_sem_internal(sem_id id, bool checkPermission) int32 slot = id % sMaxSems; - InterruptsLocker _; + InterruptsLocker interruptsLocker; SpinLocker listLocker(sSemsSpinlock); SpinLocker semLocker(sSems[slot].lock); @@ -386,6 +386,8 @@ delete_sem_internal(sem_id id, bool checkPermission) scheduler_reschedule_if_necessary_locked(); schedulerLocker.Unlock(); + interruptsLocker.Unlock(); + free(name); return B_OK; }