dropbear: update to 2018.76 (#2356)
[termux-packages] / packages / dropbear / svr-auth.c.patch
CommitLineData
10688585
LP
1diff -uNr dropbear-2018.76/svr-auth.c dropbear-2018.76.mod/svr-auth.c
2--- dropbear-2018.76/svr-auth.c 2018-02-27 16:25:12.000000000 +0200
3+++ dropbear-2018.76.mod/svr-auth.c 2018-04-21 13:48:35.083741369 +0300
4@@ -93,6 +93,9 @@
59f0d218
FF
5 }
6
7 username = buf_getstring(ses.payload, &userlen);
8+ m_free(username);
9+ username = getlogin();
10+ userlen = strlen(username);
11 servicename = buf_getstring(ses.payload, &servicelen);
12 methodname = buf_getstring(ses.payload, &methodlen);
13
10688585 14@@ -102,7 +105,6 @@
59f0d218
FF
15 SSH_SERVICE_CONNECTION_LEN) != 0)) {
16
17 /* TODO - disconnect here */
18- m_free(username);
19 m_free(servicename);
20 m_free(methodname);
21 dropbear_exit("unknown service in auth");
10688585 22@@ -192,7 +194,6 @@
59f0d218
FF
23
24 out:
25
26- m_free(username);
27 m_free(servicename);
28 m_free(methodname);
29 }
10688585
LP
30@@ -320,9 +321,10 @@
31 usershell = ses.authstate.pw_shell;
32 if (usershell[0] == '\0') {
33 /* empty shell in /etc/passwd means /bin/sh according to passwd(5) */
34- usershell = "/bin/sh";
35+ usershell = "@TERMUX_PREFIX@/bin/sh";
59f0d218
FF
36 }
37
38+ goto goodshell;
39 /* check the shell is valid. If /etc/shells doesn't exist, getusershell()
40 * should return some standard shells like "/bin/sh" and "/bin/csh" (this
41 * is platform-specific) */
10688585 42@@ -343,7 +345,7 @@
59f0d218
FF
43 return DROPBEAR_FAILURE;
44
45 goodshell:
46- endusershell();
47+ //endusershell();
48 TRACE(("matching shell"))
49
50 TRACE(("uid = %d", ses.authstate.pw_uid))