File openssh-5.1p1-saveargv-fix.diff of Package openssh

--- sshd.c
+++ sshd.c
@@ -305,6 +305,7 @@
 static void
 sighup_restart(void)
 {
+	int i;
 	logit("Received SIGHUP; restarting.");
 	close_listen_socks();
 	close_startup_pipes();
@@ -1270,7 +1271,11 @@
 #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)
openSUSE Build Service is sponsored by