support: Also return fd when it is 0

The fd validity check in open_dev_null checks if fd > 0, which would
lead to a leaked fd if it is == 0.

Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Siddhesh Poyarekar 2021-10-06 21:48:35 +05:30
parent 3234a31b48
commit 27b6edbb09

View File

@ -40,16 +40,16 @@ increase_nofile (void)
static int
open_dev_null (int flags, mode_t mode)
{
int fd = open64 ("/dev/null", flags, mode);
if (fd > 0)
return fd;
int fd = open64 ("/dev/null", flags, mode);
if (fd >= 0)
return fd;
if (fd < 0 && errno != EMFILE)
FAIL_EXIT1 ("open64 (\"/dev/null\", 0x%x, 0%o): %m", flags, mode);
if (fd < 0 && errno != EMFILE)
FAIL_EXIT1 ("open64 (\"/dev/null\", 0x%x, 0%o): %m", flags, mode);
increase_nofile ();
increase_nofile ();
return xopen ("/dev/null", flags, mode);
return xopen ("/dev/null", flags, mode);
}
struct range