]> granicus.if.org Git - sudo/commitdiff
Fix "sudo -C" when we have internal fds to preserve from closefrom().
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 7 Aug 2014 15:38:03 +0000 (09:38 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 7 Aug 2014 15:38:03 +0000 (09:38 -0600)
src/preserve_fds.c

index e96da2913e1c0a7a40d19a3a37fd3b9b90b22463..55f9cd5cc1a8b7a2dd19e47653aca75aa282842c 100644 (file)
@@ -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) {