Hey Josselin, Thanks for finding this bug! I have one concern about your patches:
Josselin Poiret writes: > The second patch removes renumber_file_descriptor, as it is no longer > used. One thing that ‘renumber_file_descriptor’ does that we seem to be losing here is error checking. To my eye, the old code will try and warn the user if they run out of file descriptors, but the new code will not. The other thing that I like is how ‘renumber_file_descriptor’ checks the return value of ‘dup’ in addition to checking ‘errno’. (I realize that the old code skips that check for ‘dup2’ – I’m kinda just stating a preference here.) A quick check of POSIX turns up the following: “the value of ‘errno’ should only be examined when it is indicated to be valid by a function’s return value” [1]. -- Tim [1] https://pubs.opengroup.org/onlinepubs/9699919799/