This seems to be missing a return in the NULL check for handle in the match_file function. This leads to fgets being called with a NULL pointer, which I don't know what it does, it may be OK.
I would argue that this is why a "better C" can be useful, it's the kind of error that would be much harder to make in rust.
I would argue that this is why a "better C" can be useful, it's the kind of error that would be much harder to make in rust.