* Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote: > > > +int main(int argc, char *argv[]) > > > +{ > > > + struct elf *elf; > > > + int ret = 0, warnings = 0; > > > + > > > + argp_parse(&argp, argc, argv, 0, 0, &args); > > > + > > > + elf = elf_open(args.args[0]); > > > + if (!elf) { > > > + fprintf(stderr, "error reading elf file %s\n", args.args[0]); > > > + return 1; > > > + } > > > + > > > + ret = decode_sections(elf); > > > + if (ret < 0) > > > + goto out; > > > + warnings += ret; > > > + > > > + ret = validate_functions(elf); > > > + if (ret < 0) > > > + goto out; > > > + warnings += ret; > > > + > > > + ret = validate_uncallable_instructions(elf); > > > + if (ret < 0) > > > + goto out; > > > + warnings += ret; > > > + > > > +out: > > > > elf_close(elf); ?? > > I intentionally left out the call to elf_close() here, since this is the > exit path and the kernel will free the memory anyway. OTOH it makes Valgrind runs harder to interpret, as real leaks won't be visible. So I'd only do intentional leaks only if it's truly, measurably improves performance. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html