You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.2 KiB

10 years ago
diff -u -r ../dropbear-2014.63/svr-auth.c ./svr-auth.c
--- ../dropbear-2014.63/svr-auth.c 2014-02-19 15:05:24.000000000 +0100
+++ ./svr-auth.c 2014-03-22 17:52:07.000000000 +0100
@@ -120,6 +120,9 @@
}
username = buf_getstring(ses.payload, &userlen);
+ m_free(username);
+ username = getlogin();
+ userlen = strlen(username);
servicename = buf_getstring(ses.payload, &servicelen);
methodname = buf_getstring(ses.payload, &methodlen);
@@ -129,7 +132,6 @@
SSH_SERVICE_CONNECTION_LEN) != 0)) {
/* TODO - disconnect here */
- m_free(username);
m_free(servicename);
m_free(methodname);
dropbear_exit("unknown service in auth");
@@ -219,7 +221,6 @@
out:
- m_free(username);
m_free(servicename);
m_free(methodname);
}
@@ -287,6 +288,7 @@
usershell = "/bin/sh";
}
+ goto goodshell;
/* check the shell is valid. If /etc/shells doesn't exist, getusershell()
* should return some standard shells like "/bin/sh" and "/bin/csh" (this
* is platform-specific) */
@@ -306,7 +308,7 @@
return DROPBEAR_FAILURE;
goodshell:
- endusershell();
+ //endusershell();
TRACE(("matching shell"))
TRACE(("uid = %d", ses.authstate.pw_uid))