From 3dab9d0b5c2fc50648daf01fafe62a9173fe2a59 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Fri, 4 Jun 2021 20:32:19 +0200 Subject: [PATCH] Kernel: Implement offset for `lseek` with `SEEK_END` --- Kernel/FileSystem/FileDescription.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Kernel/FileSystem/FileDescription.cpp b/Kernel/FileSystem/FileDescription.cpp index e80cf76275..30a3e5d81f 100644 --- a/Kernel/FileSystem/FileDescription.cpp +++ b/Kernel/FileSystem/FileDescription.cpp @@ -136,7 +136,9 @@ KResultOr FileDescription::seek(off_t offset, int whence) case SEEK_END: if (!metadata().is_valid()) return EIO; - new_offset = metadata().size; + if (Checked::addition_would_overflow(metadata().size, offset)) + return EOVERFLOW; + new_offset = metadata().size + offset; break; default: return EINVAL;