fix(mmap): mmap needs equal buffer lengths

Fixes: https://github.com/zkat/cacache-rs/issues/32
This commit is contained in:
Kat Marchán 2022-02-25 08:32:38 -08:00
parent d9291763ce
commit a4f9f5f265
No known key found for this signature in database
GPG Key ID: AEB529C08A3C7E9E
2 changed files with 5 additions and 5 deletions

View File

@ -34,9 +34,10 @@ impl Writer {
.recursive(true)
.create(&tmp_path)
.to_internal()?;
let tmpfile = NamedTempFile::new_in(tmp_path).to_internal()?;
let mut tmpfile = NamedTempFile::new_in(tmp_path).to_internal()?;
let mmap = if let Some(size) = size {
if size <= MAX_MMAP_SIZE {
tmpfile.as_file_mut().set_len(size as u64).to_internal()?;
unsafe { MmapMut::map_mut(tmpfile.as_file()).ok() }
} else {
None

View File

@ -312,15 +312,14 @@ fn bucket_entries(bucket: &Path) -> InternalResult<Vec<SerializableMetadata>> {
async fn bucket_entries_async(bucket: &Path) -> InternalResult<Vec<SerializableMetadata>> {
let file_result = afs::File::open(bucket).await;
let file;
if let Err(err) = file_result {
let file = if let Err(err) = file_result {
if err.kind() == ErrorKind::NotFound {
return Ok(Vec::new());
}
return Err(err).to_internal()?;
} else {
file = file_result.unwrap();
}
file_result.unwrap()
};
let mut vec = Vec::new();
let mut lines = BufReader::new(file).lines();
while let Some(line) = lines.next().await {