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

Method init_unlimit_fuzzable_list_var

src/program/transform.rs:1207–1236  ·  view source on GitHub ↗
(
        &mut self,
        decl_name: &str,
        ty: &str,
        ins_pos: usize,
        size_arg: Option<(&str, &str, u32)>,
    )

Source from the content-addressed store, hash-verified

1205 }
1206
1207 fn init_unlimit_fuzzable_list_var(
1208 &mut self,
1209 decl_name: &str,
1210 ty: &str,
1211 ins_pos: usize,
1212 size_arg: Option<(&str, &str, u32)>,
1213 ) -> Result<()> {
1214 let init_id = self.fuzzer_shim.get_init_id_inc();
1215 let mut array_init_stmts = format!("\n\t\t{decl_name} = fuzz_{ty}_array_{};", init_id);
1216 if let Some((integer_name, integer_type, c_type)) = size_arg {
1217 let fuzzer_size_var = format!("fuzz_{ty}_array_size_{init_id}");
1218 // ctype: 0 for ArrayLen and 1 for ArrayIndex
1219 let init_stmt = if c_type == 0 {
1220 if integer_type.contains('*') {
1221 format!("\n\t\t{integer_type} {integer_name} = static_cast<{integer_type}>(&{fuzzer_size_var});")
1222 } else {
1223 format!("\n\t\t{integer_type} {integer_name} = static_cast<{integer_type}>({fuzzer_size_var});")
1224 }
1225 } else {
1226 format!(
1227 "\n\t\tFDPGetRandomInteger({integer_type}, {integer_name}, {fuzzer_size_var})"
1228 )
1229 };
1230 array_init_stmts.push_str(&init_stmt);
1231 }
1232 self.fuzzer_shim
1233 .append_fuzzer_stmt(array_init_stmts.clone());
1234 self.seek_and_rewrite(ins_pos, 0, &array_init_stmts)?;
1235 Ok(())
1236 }
1237}
1238
1239#[derive(Clone)]

Callers 1

Calls 3

get_init_id_incMethod · 0.80
append_fuzzer_stmtMethod · 0.80
seek_and_rewriteMethod · 0.80

Tested by

no test coverage detected