add support for MSI files to infer backend

This commit is contained in:
Lynne Megido 2021-09-29 23:31:51 +10:00
parent 47d94cf27b
commit 0712bf0a6b
Signed by: lynnesbian
GPG key ID: F0A184B5213D9F90
2 changed files with 6 additions and 3 deletions

View file

@ -5,7 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
[Semantic Versioning](https://semver.org/spec/v2.0.0.html). [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased ## Unreleased
### Added
- MSI detection to [`infer`] backend
## v0.3.7 - 2021-09-25 ## v0.3.7 - 2021-09-25
### Added ### Added
- `-j`/`--jobs` flag for specifying the number of threads fif should use for scanning files - `-j`/`--jobs` flag for specifying the number of threads fif should use for scanning files

View file

@ -18,8 +18,6 @@ cfg_if! {
db: infer::Infer, db: infer::Infer,
} }
// TODO: msi
fn open_document_check(buf: &[u8], kind: &str) -> bool { fn open_document_check(buf: &[u8], kind: &str) -> bool {
let mime = format!("application/vnd.oasis.opendocument.{}", kind); let mime = format!("application/vnd.oasis.opendocument.{}", kind);
let mime = mime.as_bytes(); let mime = mime.as_bytes();
@ -53,6 +51,10 @@ cfg_if! {
buf.starts_with(b"\x46\x4f\x52\x4d\x41\x49\x46\x46") buf.starts_with(b"\x46\x4f\x52\x4d\x41\x49\x46\x46")
}); });
info.add("application/x-msi", "msi", |buf| {
buf.starts_with(b"\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1")
})
info.add("image/svg+xml", "svg", |buf| { info.add("image/svg+xml", "svg", |buf| {
// before doing the moderately expensive SVG check, we should make sure that the input is actually SGML-ish, // before doing the moderately expensive SVG check, we should make sure that the input is actually SGML-ish,
// by which i mean, starts with anywhere from zero to ∞-1 whitespace characters, and then a less than sign, // by which i mean, starts with anywhere from zero to ∞-1 whitespace characters, and then a less than sign,