From 706752d6b974eed2ebed6c81dfa68c34b601e8bd Mon Sep 17 00:00:00 2001 From: apio Date: Tue, 15 Aug 2023 19:08:37 +0200 Subject: [PATCH] kernel: Return SIGPIPE/EPIPE when writing to a pipe with no more readers --- kernel/src/fs/Pipe.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/src/fs/Pipe.cpp b/kernel/src/fs/Pipe.cpp index d55707de..ff9f8384 100644 --- a/kernel/src/fs/Pipe.cpp +++ b/kernel/src/fs/Pipe.cpp @@ -44,7 +44,11 @@ Result Pipe::read(u8* buf, usize, usize length) Result Pipe::write(const u8* buf, usize, usize length) { - if (!m_reader) return length; + if (!m_reader) + { + Scheduler::current()->send_signal(SIGPIPE); + return err(EPIPE); + } u8* slice = TRY(m_data_buffer.slice_at_end(length)); memcpy(slice, buf, length);