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

Method build_from_single_path_subseq

src/analysis/adg.rs:760–783  ·  view source on GitHub ↗
(
        &mut self,
        seq: Vec<&TaintData>,
        previous_data: &Option<&TaintData>,
        subsequent_data: &Option<&TaintData>,
    )

Source from the content-addressed store, hash-verified

758 }
759
760 fn build_from_single_path_subseq(
761 &mut self,
762 seq: Vec<&TaintData>,
763 previous_data: &Option<&TaintData>,
764 subsequent_data: &Option<&TaintData>,
765 ) -> Result<()> {
766 if seq.is_empty() {
767 return Ok(());
768 }
769 let mut first = seq.first().unwrap();
770 self.add_node(first);
771 if let Some(previous) = previous_data {
772 self.add_edge(previous, first)?;
773 }
774 for next in &seq[1..] {
775 self.add_edge(first, next)?;
776 first = next;
777 }
778 let last = seq.last().unwrap();
779 if let Some(subsequent) = subsequent_data {
780 self.add_edge(last, subsequent)?;
781 }
782 Ok(())
783 }
784
785 /// build the graph with subseq. Subseq is strated with [Merge] and ended with [Join], where data of control flows are separated by [Sep].
786 fn build_from_subseq(

Callers 2

build_from_subseqMethod · 0.80
build_from_seqMethod · 0.80

Calls 3

add_nodeMethod · 0.80
is_emptyMethod · 0.45
add_edgeMethod · 0.45

Tested by

no test coverage detected