ext2: fix panic when encountering invalid UTF-8

This commit is contained in:
Mark Poliakov 2024-12-29 12:51:34 +02:00
parent baff0cd5bd
commit 7844116411

View File

@ -118,7 +118,6 @@ impl<'a> Iterator for DirentIter<'a> {
let dirent: &Dirent = bytemuck::from_bytes(&self.block[self.offset..entry_end]);
if dirent.ino == 0 {
// TODO skip over empty/padding dirents
self.offset += dirent.ent_size as usize;
continue;
}
@ -329,7 +328,7 @@ impl DirectoryNode {
pos += dirent.ent_size as u64;
let name = core::str::from_utf8(name).unwrap();
if let Ok(name) = core::str::from_utf8(name) {
entries[entry_count].write(DirectoryEntry {
ty: None,
name: FixedString::from_str(name)?,
@ -337,6 +336,7 @@ impl DirectoryNode {
entry_count += 1;
}
}
Ok((entry_count, pos))
})