From e0db77484c1daa9f8aa456937ededee9cb6fee8a Mon Sep 17 00:00:00 2001 From: zhangyao2022 Date: Tue, 6 Jun 2023 10:05:22 +0800 Subject: [PATCH] fix: blkid filters non-block devices --- exts/devmaster/src/lib/builtin/blkid.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/exts/devmaster/src/lib/builtin/blkid.rs b/exts/devmaster/src/lib/builtin/blkid.rs index b5eaf8bd..a66bbb56 100644 --- a/exts/devmaster/src/lib/builtin/blkid.rs +++ b/exts/devmaster/src/lib/builtin/blkid.rs @@ -375,6 +375,23 @@ impl Builtin for Blkid { argv: Vec, test: bool, ) -> Result { + let subsystem = device + .lock() + .map_err(op_command_err!("device lock error"))? + .get_subsystem() + .map_err(op_command_err!("device get_subsystem error"))?; + + if subsystem != *"block" { + let syspath = device + .lock() + .map_err(op_command_err!("device lock error"))? + .get_syspath() + .map_err(op_command_err!("device get_syspath error"))? + .to_string(); + log::warn!("blkid can only probe block devices, ignoring {syspath}"); + return Ok(false); + } + let args = Args::try_parse_from(argv).map_err(op_command_err!("parse argv error"))?; if !args.is_set_offset() { return Err(Error::BuiltinCommandError { -- Gitee