openssh: Update from 7.6 to 7.7
[termux-packages] / packages / openssh / sshd.c.patch
CommitLineData
1ff10e5c
FF
1diff -u -r ../openssh-7.7p1/sshd.c ./sshd.c
2--- ../openssh-7.7p1/sshd.c 2018-04-02 07:38:28.000000000 +0200
3+++ ./sshd.c 2018-04-03 23:48:49.605335389 +0200
4@@ -553,8 +553,10 @@
8c37ff6b
FF
5 debug3("privsep user:group %u:%u", (u_int)privsep_pw->pw_uid,
6 (u_int)privsep_pw->pw_gid);
7 gidset[0] = privsep_pw->pw_gid;
59f0d218 8+#ifndef __ANDROID__
8c37ff6b
FF
9 if (setgroups(1, gidset) < 0)
10 fatal("setgroups: %.100s", strerror(errno));
59f0d218 11+#endif
8c37ff6b
FF
12 permanently_set_uid(privsep_pw);
13 }
59f0d218 14 }
1ff10e5c 15@@ -1447,7 +1449,8 @@
59f0d218
FF
16 saved_argc = ac;
17 rexec_argc = ac;
18 saved_argv = xcalloc(ac + 1, sizeof(*saved_argv));
1ff10e5c
FF
19- for (i = 0; (int)i < ac; i++)
20+ saved_argv[0] = "@TERMUX_PREFIX@/bin/sshd";
21+ for (i = 1; (int)i < ac; i++)
59f0d218
FF
22 saved_argv[i] = xstrdup(av[i]);
23 saved_argv[i] = NULL;
24
1ff10e5c 25@@ -1457,8 +1460,10 @@
59f0d218
FF
26 av = saved_argv;
27 #endif
28
29+#ifndef __ANDROID__
30 if (geteuid() == 0 && setgroups(0, NULL) == -1)
31 debug("setgroups(): %.200s", strerror(errno));
32+#endif
33
34 /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
35 sanitise_stdfd();
1ff10e5c 36@@ -1577,8 +1582,6 @@
59f0d218
FF
37 }
38 if (rexeced_flag || inetd_flag)
39 rexec_flag = 0;
40- if (!test_flag && (rexec_flag && (av[0] == NULL || *av[0] != '/')))
41- fatal("sshd re-exec requires execution with an absolute path");
42 if (rexeced_flag)
43 closefrom(REEXEC_MIN_FREE_FD);
44 else
1ff10e5c
FF
45@@ -1692,7 +1695,9 @@
46 freezero(privsep_pw->pw_passwd, strlen(privsep_pw->pw_passwd));
59f0d218
FF
47 privsep_pw->pw_passwd = xstrdup("*");
48 }
49+#ifndef __ANDROID__
50 endpwent();
51+#endif
52
53 /* load host keys */
54 sensitive_data.host_keys = xcalloc(options.num_host_key_files,
1ff10e5c 55@@ -1842,8 +1847,10 @@
59f0d218
FF
56 * to create a file, and we can't control the code in every
57 * module which might be used).
58 */
59+#ifndef __ANDROID__
60 if (setgroups(0, NULL) < 0)
61 debug("setgroups() failed: %.200s", strerror(errno));
62+#endif
63
64 if (rexec_flag) {
1ff10e5c 65 if (rexec_argc < 0)