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

Method create_unlimit_call_fuzzer_var

src/program/transform.rs:586–605  ·  view source on GitHub ↗
(
        &mut self,
        fuzz_varaint: &FuzzVariant,
        visitor: &Visitor,
    )

Source from the content-addressed store, hash-verified

584 }
585
586 fn create_unlimit_call_fuzzer_var(
587 &mut self,
588 fuzz_varaint: &FuzzVariant,
589 visitor: &Visitor,
590 ) -> Result<()> {
591 let arg_pos = fuzz_varaint.get_arg_pos();
592 let call_name = fuzz_varaint.get_call_name();
593 let call_node = fuzz_varaint.get_call_node();
594 log::trace!("change {arg_pos}-th arg of {call_name} be fuzzable");
595
596 let arg = get_nth_arg(call_node, *arg_pos)?.ignore_parenexpr();
597 let arg_ty = get_func_gadget(call_name)
598 .unwrap()
599 .get_canonical_arg_type(*arg_pos)
600 .context(format!(
601 "cannot get canonical ty for arg :{arg_pos}-th {call_name}."
602 ))?;
603 self._create_unlimit_call_fuzzer_var(arg_ty, arg, visitor)?;
604 Ok(())
605 }
606
607 fn change_arg_by_constraint(
608 &mut self,

Callers 1

Calls 8

get_nth_argFunction · 0.85
get_func_gadgetFunction · 0.85
get_arg_posMethod · 0.80
get_call_nodeMethod · 0.80
ignore_parenexprMethod · 0.80
get_call_nameMethod · 0.45

Tested by

no test coverage detected