Commit | Line | Data |
---|---|---|
10688585 LP |
1 | diff -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)) |