Fix file writing

This commit is contained in:
Yannick Naumann 2024-11-19 12:45:08 +01:00
parent fb2416e51a
commit 563efb1bc9

View File

@ -103,18 +103,20 @@ int main(int argc, char **argv)
argc -= 5;
unsigned int num_tasks = 5;
int full_input_room = (int) pow(input_size, num_tasks);
int full_input_room = (int)pow(input_size, num_tasks);
printf("Full input room: %d\n", full_input_room);
unsigned long *deltas = malloc(full_input_room * sizeof(unsigned long));
if (deltas == NULL) {
if (deltas == NULL)
{
fprintf(stderr, "Memory allocation failed\n");
exit(1);
}
u_int32_t *inputs = malloc(full_input_room * sizeof(u_int32_t));
if (inputs == NULL) {
if (inputs == NULL)
{
fprintf(stderr, "Memory allocation failed\n");
exit(1);
}
}
//========= Instrumentation end
qemu_init(argc, argv);
//========= Instrumentation start
@ -136,6 +138,11 @@ int main(int argc, char **argv)
int task_inputs[num_tasks];
fclose(fopen(output_path, "w"));
FILE *fptr = fopen(output_path, "a");
// input of all tasks combined
for (long i = 0; i < full_input_room; i++)
{
@ -143,7 +150,7 @@ int main(int argc, char **argv)
for (int j = 0; j < num_tasks; j++)
{
// from the "global input" i, extract the input bits for the task j
task_inputs[j] = (i >> (j * (__builtin_popcount(input_size - 1) ))) & (input_size - 1);
task_inputs[j] = (i >> (j * (__builtin_popcount(input_size - 1)))) & (input_size - 1);
printf("Task %d: %d\n", j, task_inputs[j]);
}
@ -171,8 +178,6 @@ int main(int argc, char **argv)
libafl_qemu_write_reg(cpu, j + 1, register_in_32b);
}
libafl_qemu_set_native_breakpoint(start);
vm_start();
@ -199,17 +204,18 @@ int main(int argc, char **argv)
inputs[i] = i;
deltas[i] = end_count - start_count;
printf("Delta: %lu\n", deltas[i]);
printf("Delta: %lu\n", deltas[i]);
fprintf(fptr, "%d", inputs[i]);
for (int j = 0; j < num_tasks; j++)
{
fprintf(fptr, ",%d", task_inputs[j]);
}
fprintf(fptr, ",%lu\n", deltas[i]);
}
// // Write to serial port
// qemu_chr_fe_write(serial_chr, data, length);
FILE *fptr = fopen(output_path, "w");
for (int i = 0; i < full_input_room; i++)
{
fprintf(fptr, "%d,%lu\n", inputs[i], deltas[i]);
}
fclose(fptr);
free(deltas);