From ec8c17428469f209b3236e849ba664dbe3d6f9f4 Mon Sep 17 00:00:00 2001 From: jca Date: Mon, 26 Sep 2016 17:15:19 +0000 Subject: Exit early from rdaemon() is the passed fd is invalid. fd == -1 check suggested by deraadt@, ok florian@ --- usr.sbin/ftp-proxy/ftp-proxy.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'usr.sbin/ftp-proxy/ftp-proxy.c') diff --git a/usr.sbin/ftp-proxy/ftp-proxy.c b/usr.sbin/ftp-proxy/ftp-proxy.c index 74216d0791f..611bb6b02f9 100644 --- a/usr.sbin/ftp-proxy/ftp-proxy.c +++ b/usr.sbin/ftp-proxy/ftp-proxy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ftp-proxy.c,v 1.35 2016/09/15 16:16:03 jca Exp $ */ +/* $OpenBSD: ftp-proxy.c,v 1.36 2016/09/26 17:15:19 jca Exp $ */ /* * Copyright (c) 2004, 2005 Camiel Dobbelaar, @@ -633,6 +633,7 @@ main(int argc, char *argv[]) verbose = 0; /* Other initialization. */ + devnull = -1; id_count = 1; session_count = 0; @@ -1142,6 +1143,12 @@ usage(void) int rdaemon(int devnull) { + if (devnull == -1) { + errno = EBADF; + return (-1); + } + if (fcntl(devnull, F_GETFL) == -1) + return (-1); switch (fork()) { case -1: -- cgit v1.2.3-59-g8ed1b