forked from pool/openssh
29 lines
821 B
Diff
29 lines
821 B
Diff
|
# related to bnc#49845, upstream bug #529
|
||
|
|
||
|
diff --git a/openssh-6.5p1/sshd.c b/openssh-6.5p1/sshd.c
|
||
|
--- a/openssh-6.5p1/sshd.c
|
||
|
+++ b/openssh-6.5p1/sshd.c
|
||
|
@@ -1399,17 +1399,21 @@ main(int ac, char **av)
|
||
|
saved_argv = xcalloc(ac + 1, sizeof(*saved_argv));
|
||
|
for (i = 0; i < ac; i++)
|
||
|
saved_argv[i] = xstrdup(av[i]);
|
||
|
saved_argv[i] = NULL;
|
||
|
|
||
|
#ifndef HAVE_SETPROCTITLE
|
||
|
/* Prepare for later setproctitle emulation */
|
||
|
compat_init_setproctitle(ac, av);
|
||
|
- av = saved_argv;
|
||
|
+
|
||
|
+ av = xmalloc(sizeof(*saved_argv) * (saved_argc + 1));
|
||
|
+ for (i = 0; i < saved_argc; i++)
|
||
|
+ av[i] = xstrdup(saved_argv[i]);
|
||
|
+ av[i] = NULL;
|
||
|
#endif
|
||
|
|
||
|
if (geteuid() == 0 && setgroups(0, NULL) == -1)
|
||
|
debug("setgroups(): %.200s", strerror(errno));
|
||
|
|
||
|
/* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
|
||
|
sanitise_stdfd();
|
||
|
|