diff options
author | rabite <rabite@posteo.de> | 2019-05-28 15:29:06 +0200 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-05-28 15:40:30 +0200 |
commit | caf242986ceadc881b29fa9197a70128b6fb8f39 (patch) | |
tree | e0993d3ac9d6700e5863e747a70fe5da6c11f412 | |
parent | 16866e5aeb10111dca03c8e47e288becd0bab53c (diff) |
fix crash in mime_guess when operating on non-regular files
-rw-r--r-- | src/files.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/files.rs b/src/files.rs index 80bbb7b..44f5470 100644 --- a/src/files.rs +++ b/src/files.rs @@ -838,8 +838,15 @@ impl File { let mime = mime_guess::get_mime_type(&ext.to_string_lossy()); Some(mime) } else { - let mime = tree_magic::from_filepath(&self.path); - mime::Mime::from_str(&mime).ok() + // Fix crash in tree_magic when called on non-regular file + self.meta() + .ok() + .and_then(|meta| { + if meta.is_file() { + let mime = tree_magic::from_filepath(&self.path); + mime::Mime::from_str(&mime).ok() + } else { None } + }) } } |