MCPcopy Create free account
hub / github.com/ElementsProject/lightning / insert_part

Function insert_part

tests/fuzz/libfuzz.c:82–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80}
81
82static size_t insert_part(const u8 *in1, size_t in1_size, const u8 *in2,
83 size_t in2_size, u8 *out, size_t max_out_size)
84{
85 size_t max_insert_size;
86 size_t insert_begin;
87 size_t insert_size;
88 size_t in2_begin;
89
90 if (in1_size >= max_out_size)
91 return 0;
92 if (in1_size == 0 || in2_size == 0)
93 return 0;
94
95 max_insert_size = max_out_size - in1_size;
96 if (max_insert_size > in2_size)
97 max_insert_size = in2_size;
98 insert_begin = rand() % in1_size;
99 insert_size = (rand() % max_insert_size) + 1;
100
101 in2_begin = rand() % (in2_size - insert_size + 1);
102
103 memcpy(out, in1, insert_begin);
104 memcpy(out + insert_begin, in2 + in2_begin, insert_size);
105 memcpy(out + insert_begin + insert_size, in1 + insert_begin,
106 in1_size - insert_begin);
107
108 return in1_size + insert_size;
109}
110
111static size_t overwrite_part(const u8 *in1, size_t in1_size, const u8 *in2,
112 size_t in2_size, u8 *out, size_t max_out_size)

Callers 1

cross_overFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected