Răsfoiți Sursa

Fixed a bug where the inner offset was not being calculated
correctly by `Trailered`.

Matthew Carr 2 ani în urmă
părinte
comite
bc0e4fe298
1 a modificat fișierele cu 2 adăugiri și 1 ștergeri
  1. 2 1
      crates/btlib/src/trailered.rs

+ 2 - 1
crates/btlib/src/trailered.rs

@@ -95,7 +95,8 @@ mod private {
             self.inner.seek(SeekFrom::Start(self.body_len))?;
             self.write_buf.clear();
             write_to(trailer, &mut self.write_buf)?;
-            let offset_u64 = 8 + self.inner.stream_position()? - self.body_len;
+            let offset_u64 =
+                8 + self.inner.stream_position()? + self.write_buf.len() as u64 - self.body_len;
             let offset = -(offset_u64 as i64);
             write_to(&offset, &mut self.write_buf)?;
             self.inner.write_all(&self.write_buf)?;