From: Todd C. Miller Date: Thu, 7 Aug 2014 15:38:03 +0000 (-0600) Subject: Fix "sudo -C" when we have internal fds to preserve from closefrom(). X-Git-Tag: SUDO_1_8_11^2~74 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=703263bf0e1781098a69157228fbed5f0329fcb6;p=sudo Fix "sudo -C" when we have internal fds to preserve from closefrom(). --- diff --git a/src/preserve_fds.c b/src/preserve_fds.c index e96da2913..55f9cd5cc 100644 --- a/src/preserve_fds.c +++ b/src/preserve_fds.c @@ -166,9 +166,11 @@ closefrom_except(int startfd, struct preserved_fd_list *pfds) free(fdsp); /* Let closefrom() do the rest for us. */ + if (lastfd + 1 > startfd) + startfd = lastfd + 1; sudo_debug_printf(SUDO_DEBUG_DEBUG|SUDO_DEBUG_LINENO, - "closefrom(%d)", lastfd + 1); - closefrom(lastfd + 1); + "closefrom(%d)", startfd); + closefrom(startfd); /* Restore preserved fds and set flags. */ TAILQ_FOREACH_REVERSE(pfd, pfds, preserved_fd_list, entries) {