From a1b84f93351abd8fbbbae4034203c5e236edee44 Mon Sep 17 00:00:00 2001 From: Matheus Date: Tue, 18 Oct 2022 12:45:38 -0300 Subject: [PATCH] pipe: fix unlocking lock that is not owned --- src/sys/pipe.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/sys/pipe.c b/src/sys/pipe.c index 9961507b..282033db 100644 --- a/src/sys/pipe.c +++ b/src/sys/pipe.c @@ -42,6 +42,7 @@ int pipe_read(pipe_t* pipe, void* buff, size_t count, int* error){ spinlock_release(&pipe->lock); if(event_wait(&pipe->wevent, true)){ + spinlock_acquire(&pipe->lock); readc = -1; *error = EINTR; break; @@ -80,6 +81,7 @@ int pipe_write(pipe_t* pipe, void* buff, size_t count, int* error){ spinlock_release(&pipe->lock); if(event_wait(&pipe->revent, true)){ + spinlock_acquire(&pipe->lock); *error = EINTR; writec = -1; break;