[openssh-commits] [openssh] 01/01: Move closefrom() to before first malloc.

git+noreply at mindrot.org git+noreply at mindrot.org
Fri Jun 25 15:12:32 AEST 2021


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

commit c9f7bba2e6f70b7ac1f5ea190d890cb5162ce127
Author: Darren Tucker <dtucker at dtucker.net>
Date:   Fri Jun 25 15:08:18 2021 +1000

    Move closefrom() to before first malloc.
    
    When built against tcmalloc, tcmalloc allocates a descriptor for its
    internal use, so calling closefrom() afterward causes the descriptor
    number to be reused resulting in a corrupted connection.  Moving the
    closefrom a little earlier should resolve this.  From kircherlike at
    outlook.com via bz#3321, ok djm@
---
 ssh.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/ssh.c b/ssh.c
index cf8c018e..0343cba3 100644
--- a/ssh.c
+++ b/ssh.c
@@ -653,6 +653,12 @@ main(int ac, char **av)
 	/* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
 	sanitise_stdfd();
 
+	/*
+	 * Discard other fds that are hanging around. These can cause problem
+	 * with backgrounded ssh processes started by ControlPersist.
+	 */
+	closefrom(STDERR_FILENO + 1);
+
 	__progname = ssh_get_progname(av[0]);
 
 #ifndef HAVE_SETPROCTITLE
@@ -668,12 +674,6 @@ main(int ac, char **av)
 
 	seed_rng();
 
-	/*
-	 * Discard other fds that are hanging around. These can cause problem
-	 * with backgrounded ssh processes started by ControlPersist.
-	 */
-	closefrom(STDERR_FILENO + 1);
-
 	/* Get user data. */
 	pw = getpwuid(getuid());
 	if (!pw) {

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list