Quellcode durchsuchen

Fix fseeko not flushing write buffer

Jeremy Soller vor 6 Jahren
Ursprung
Commit
4ced856b39
1 geänderte Dateien mit 5 neuen und 0 gelöschten Zeilen
  1. 5 0
      src/header/stdio/mod.rs

+ 5 - 0
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;