Check fd against >=0 instead of >0 in error path. The dup could
authordtucker <dtucker@openbsd.org>
Fri, 31 Mar 2023 00:44:29 +0000 (00:44 +0000)
committerdtucker <dtucker@openbsd.org>
Fri, 31 Mar 2023 00:44:29 +0000 (00:44 +0000)
in theory return fd 0 although currently it doesn't in practice.
From Dmitry Belyavskiy vi github PR#238.

usr.bin/ssh/monitor_wrap.c

index 4dca66b..301b216 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: monitor_wrap.c,v 1.127 2023/03/30 00:49:37 dtucker Exp $ */
+/* $OpenBSD: monitor_wrap.c,v 1.128 2023/03/31 00:44:29 dtucker Exp $ */
 /*
  * Copyright 2002 Niels Provos <provos@citi.umich.edu>
  * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -552,7 +552,7 @@ mm_pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen)
        if ((tmp1 = dup(pmonitor->m_recvfd)) == -1 ||
            (tmp2 = dup(pmonitor->m_recvfd)) == -1) {
                error_f("cannot allocate fds for pty");
-               if (tmp1 > 0)
+               if (tmp1 >= 0)
                        close(tmp1);
                return 0;
        }