From 1ac97013db7f6ed659c24f6035e4a743d882a4f0 Mon Sep 17 00:00:00 2001 From: Kouosi Takayama <152291607+kouosi@users.noreply.github.com> Date: Wed, 16 Oct 2024 21:40:18 +0545 Subject: [PATCH] fix: getEndPos return end position --- lib/std/os/uefi/protocol/file.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/std/os/uefi/protocol/file.zig b/lib/std/os/uefi/protocol/file.zig index 9c801b2f4c28..861a62880a4c 100644 --- a/lib/std/os/uefi/protocol/file.zig +++ b/lib/std/os/uefi/protocol/file.zig @@ -85,13 +85,16 @@ pub const File = extern struct { fn getEndPos(self: *const File) GetSeekPosError!u64 { // preserve the old file position var pos: u64 = undefined; + var end_pos: u64 = undefined; if (.Success != self.getPosition(&pos)) return GetSeekPosError.GetSeekPosError; // seek to end of file to get position = file size if (.Success != self.setPosition(efi_file_position_end_of_file)) return GetSeekPosError.GetSeekPosError; + // get the position + if (.Success != self.getPosition(&end_pos)) return GetSeekPosError.GetSeekPosError; // restore the old position if (.Success != self.setPosition(pos)) return GetSeekPosError.GetSeekPosError; // return the file size = position - return pos; + return end_pos; } pub fn setPosition(self: *const File, position: u64) Status {