From fc8b3400fc9bef13d08b29dfa4118cccf4b29cce Mon Sep 17 00:00:00 2001 From: anonymix007 <48598263+anonymix007@users.noreply.github.com> Date: Sat, 25 Jan 2025 15:40:55 +0300 Subject: [PATCH] Fix sterm parsing logic for ioctl --- native/src/sepolicy/statement.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/native/src/sepolicy/statement.rs b/native/src/sepolicy/statement.rs index f5108867d..3cf602ab5 100644 --- a/native/src/sepolicy/statement.rs +++ b/native/src/sepolicy/statement.rs @@ -96,12 +96,18 @@ fn parse_term<'a>(tokens: &mut Tokens<'a>) -> ParseResult<'a, Vec<&'a str>> { // sterm ::= LB names(n) RB { n }; fn parse_sterm<'a>(tokens: &mut Tokens<'a>) -> ParseResult<'a, Vec<&'a str>> { match tokens.next() { + Some(Token::IO) => Ok(vec!["ioctl"]), Some(Token::ID(name)) => Ok(vec![name]), Some(Token::ST) => Ok(vec![]), Some(Token::LB) => { let mut names = Some(Vec::new()); loop { match tokens.next() { + Some(Token::IO) => { + if let Some(ref mut names) = names { + names.push("ioctl") + } + } Some(Token::ID(name)) => { if let Some(ref mut names) = names { names.push(name)