diff options
author | Darren Tucker <dtucker@dtucker.net> | 2021-06-25 07:08:18 +0200 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2021-06-25 07:08:18 +0200 |
commit | c9f7bba2e6f70b7ac1f5ea190d890cb5162ce127 (patch) | |
tree | e19f873f052ae6a9e90b22311678e5dbe3592dbf /ssh.c | |
parent | Put second -lssh in link line for sftp-server. (diff) | |
download | openssh-c9f7bba2e6f70b7ac1f5ea190d890cb5162ce127.tar.xz openssh-c9f7bba2e6f70b7ac1f5ea190d890cb5162ce127.zip |
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@
Diffstat (limited to 'ssh.c')
-rw-r--r-- | ssh.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -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) { |