chiark / gitweb /
dash: fix etc/profile hardcoded path (#2357)
[termux-packages] / packages / dropbear / svr-auth-c.patch
1 diff -u -r ../dropbear-2014.63/svr-auth.c ./svr-auth.c
2 --- ../dropbear-2014.63/svr-auth.c      2014-02-19 15:05:24.000000000 +0100
3 +++ ./svr-auth.c        2014-03-22 17:52:07.000000000 +0100
4 @@ -120,6 +120,9 @@
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  
14 @@ -129,7 +132,6 @@
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");
22 @@ -219,7 +221,6 @@
23  
24  out:
25  
26 -       m_free(username);
27         m_free(servicename);
28         m_free(methodname);
29  }
30 @@ -287,6 +288,7 @@
31                 usershell = "/bin/sh";
32         }
33  
34 +   goto goodshell;
35         /* check the shell is valid. If /etc/shells doesn't exist, getusershell()
36          * should return some standard shells like "/bin/sh" and "/bin/csh" (this
37          * is platform-specific) */
38 @@ -306,7 +308,7 @@
39         return DROPBEAR_FAILURE;
40         
41  goodshell:
42 -       endusershell();
43 +       //endusershell();
44         TRACE(("matching shell"))
45  
46         TRACE(("uid = %d", ses.authstate.pw_uid))