From 4ced856b390722e44ad2f54a641637b96776f673 Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jeremy@system76.com> Date: Sun, 2 Dec 2018 12:04:15 -0700 Subject: [PATCH] Fix fseeko not flushing write buffer --- src/header/stdio/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/header/stdio/mod.rs b/src/header/stdio/mod.rs index d5af2a350..e97aebdb5 100644 --- a/src/header/stdio/mod.rs +++ b/src/header/stdio/mod.rs @@ -484,6 +484,11 @@ pub unsafe extern "C" fn fseeko(stream: *mut FILE, mut off: off_t, whence: c_int off -= (stream.read_size - stream.read_pos) as off_t; } + // Flush write buffer before seek + if stream.flush().is_err() { + return -1; + } + let err = Sys::lseek(*stream.file, off, whence); if err < 0 { return err as c_int; -- GitLab