On Jan 06 2020, Jeff King wrote: > On Mon, Jan 06, 2020 at 10:15:53PM +0100, Miriam R. wrote: > >> in run-command.c file `exists_in_PATH()` function does this: >> >> static int exists_in_PATH(const char *file) >> { >> char *r = locate_in_PATH(file); >> free(r); >> return r != NULL; >> } >> >> I wonder if it is correct to do return r != NULL; after free(r); > > It is technically undefined behavior according to the C standard, but I > think it would be hard to find an implementation where it was not > perfectly fine in practice. Compilers get constantly better at exploiting undefined behaviour, so I would not count on it. Andreas. -- Andreas Schwab, schwab@xxxxxxxxxxxxxx GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."