diff --git a/src/header/stdio/mod.rs b/src/header/stdio/mod.rs index d5af2a350e..e97aebdb5a 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;