(arg: &Node, visitor: &Visitor)
| 485 | } |
| 486 | |
| 487 | pub fn is_file_descriptor(arg: &Node, visitor: &Visitor) -> bool { |
| 488 | let arg = strip_prefix(arg); |
| 489 | let fd_producer = ["open", "fileno", "fuzz_fileno"]; |
| 490 | if let Clang::CallExpr(ce) = &arg.kind { |
| 491 | let name = ce.get_name_as_string(arg); |
| 492 | if fd_producer.contains(&name.as_str()) { |
| 493 | return true; |
| 494 | } |
| 495 | } |
| 496 | if let Clang::DeclRefExpr(dre) = &arg.kind { |
| 497 | if let Some(init) = dre.get_var_init(visitor) { |
| 498 | return is_file_descriptor(init, visitor); |
| 499 | } |
| 500 | } |
| 501 | false |
| 502 | } |
| 503 | |
| 504 | pub fn is_format_string(arg: &Node, visitor: &Visitor) -> bool { |
| 505 | let arg = strip_prefix(arg); |
no test coverage detected