summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-05-28 15:29:06 +0200
committerrabite <rabite@posteo.de>2019-05-28 15:40:30 +0200
commitcaf242986ceadc881b29fa9197a70128b6fb8f39 (patch)
treee0993d3ac9d6700e5863e747a70fe5da6c11f412
parent16866e5aeb10111dca03c8e47e288becd0bab53c (diff)
fix crash in mime_guess when operating on non-regular files
-rw-r--r--src/files.rs11
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 }
+ })
}
}