make_seekable was dereferencing a null pointer
Dependencies
- [2]
SO7DQK4GMinor changes - [3]
6XB4RDRQAdding changes from original impl - [4]
HEFGMMUMStart oxidizing 1/N - [5]
NOSZA4ZMFixing tests - [6]
K6L5F26WFixing sequential test. - [7]
57ARVVZEAdding one more test - [8]
IH334Q5AReboot - [9]
IB4L4N5MFixing the lifetimes for `Seekable`
Change contents
- replacement in src/lib.rs at line 487
let mut seekable = Self::make_seekable(source, ptr::null_mut(), size);let mut seekable = Self::make_seekable(source, size)?; - replacement in src/lib.rs at line 493[3.642]→[3.1055:1146](∅→∅),[3.3650]→[3.1055:1146](∅→∅),[3.277]→[3.8948:8967](∅→∅),[3.1146]→[3.8948:8967](∅→∅),[3.8948]→[3.8948:8967](∅→∅)
fn make_seekable(source: R, dstream: *mut ZSTD_DStream, size: Option<usize>) -> Self {Seekable {fn make_seekable(source: R, size: Option<usize>) -> Result<Self, Error> {let dstream = unsafe { ZSTD_createDStream() };if dstream.is_null() {return Err(Error::Null);}Ok(Seekable { - replacement in src/lib.rs at line 511
}}) - edit in src/lib.rs at line 778[3.17537]→[3.17537:17660](∅→∅),[3.17660]→[3.255545:255555](∅→∅),[3.255545]→[3.255545:255555](∅→∅),[3.255555]→[3.17661:17662](∅→∅)
let dstream = unsafe { ZSTD_createDStream() };if dstream.is_null() {return Err(Error::Null);} - replacement in src/lib.rs at line 780
let mut seekable = Seekable::make_seekable(source, dstream, Some(size));let mut seekable = Seekable::make_seekable(source, Some(size))?; - replacement in src/lib.rs at line 790
let mut seekable = Seekable::make_seekable(source, ptr::null_mut(), None);let mut seekable = Seekable::make_seekable(source, None)?;