break;
if (fc->fn == NULL) {
dbprintf(_("Unknown fuzz command '%s'.\n"), argv[1]);
- return;
+ goto out_free;
}
/* if we're a root field type, go down 1 layer to get field list */
/* run down the field list and set offsets into the data */
if (!flist_parse(fields, fl, iocur_top->data, 0)) {
- flist_free(fl);
dbprintf(_("parsing error\n"));
- return;
+ goto out_free;
}
sfl = fl;
success = fc->fn(iocur_top->data, sfl->offset, bit_length);
if (!success) {
dbprintf(_("unable to fuzz field '%s'\n"), argv[0]);
- flist_free(fl);
- return;
+ goto out_free;
}
/* Write the fuzzed value back */
flist_print(fl);
print_flist(fl);
+out_free:
flist_free(fl);
}