MCPcopy Create free account
hub / github.com/FuzzAnything/PromptFuzz / is_format_string

Function is_format_string

src/program/infer/static_infer.rs:504–524  ·  view source on GitHub ↗
(arg: &Node, visitor: &Visitor)

Source from the content-addressed store, hash-verified

502 }
503
504 pub fn is_format_string(arg: &Node, visitor: &Visitor) -> bool {
505 let arg = strip_prefix(arg);
506 if let Clang::StringLiteral(sl) = &arg.kind {
507 let value = sl.get_eval_value();
508 if value.contains('%') {
509 return true;
510 }
511 } else if let Clang::DeclRefExpr(dre) = &arg.kind {
512 let var_name = dre.get_name_as_string();
513 if let Some(var) = visitor.find_vardecl(&var_name) {
514 if let Clang::VarDecl(vd) = &var.kind {
515 if !vd.has_init(var) {
516 return false;
517 }
518 let init = vd.get_init(var);
519 return is_format_string(init, visitor);
520 }
521 }
522 }
523 false
524 }
525
526 pub fn is_null_ptr(arg: &Node, visitor: &Visitor) -> bool {
527 let arg = strip_prefix(arg);

Callers 1

infer_constraintsFunction · 0.85

Calls 6

strip_prefixFunction · 0.85
get_eval_valueMethod · 0.80
get_name_as_stringMethod · 0.80
find_vardeclMethod · 0.80
has_initMethod · 0.80
get_initMethod · 0.80

Tested by

no test coverage detected