termux-packages/packages/dropbear/dropbear.patch

96 lines
2.7 KiB
Diff

diff -u -r ../dropbear-2013.62/cli-auth.c ./cli-auth.c
--- ../dropbear-2013.62/cli-auth.c 2013-12-03 14:39:15.000000000 +0100
+++ ./cli-auth.c 2014-01-05 21:21:37.926812382 +0100
@@ -32,6 +32,10 @@
#include "packet.h"
#include "runopts.h"
+char * getpass (const char *prompt) {
+ return "";
+}
+
void cli_authinitialise() {
memset(&ses.authstate, 0, sizeof(ses.authstate));
#ifdef ENABLE_CLI_ANYTCPFWD
diff -u -r ../dropbear-2013.62/sshpty.c ./sshpty.c
--- ../dropbear-2013.62/sshpty.c 2013-12-03 14:39:15.000000000 +0100
+++ ./sshpty.c 2014-01-05 21:21:37.930812382 +0100
@@ -22,6 +22,10 @@
#include "errno.h"
#include "sshpty.h"
+#ifdef __ANDROID__
+# define USE_DEV_PTMX 1
+#endif
+
/* Pty allocated with _getpty gets broken if we do I_PUSH:es to it. */
#if defined(HAVE__GETPTY) || defined(HAVE_OPENPTY)
#undef HAVE_DEV_PTMX
@@ -380,6 +384,7 @@
tty_name, strerror(errno));
}
+ /*
if (st.st_uid != pw->pw_uid || st.st_gid != gid) {
if (chown(tty_name, pw->pw_uid, gid) < 0) {
if (errno == EROFS &&
@@ -409,4 +414,5 @@
}
}
}
+ */
}
diff -u -r ../dropbear-2013.62/svr-agentfwd.c ./svr-agentfwd.c
--- ../dropbear-2013.62/svr-agentfwd.c 2013-12-03 14:39:15.000000000 +0100
+++ ./svr-agentfwd.c 2014-01-05 21:21:37.930812382 +0100
@@ -218,10 +218,12 @@
/* drop to user privs to make the dir/file */
uid = getuid();
gid = getgid();
+ /*
if ((setegid(ses.authstate.pw_gid)) < 0 ||
(seteuid(ses.authstate.pw_uid)) < 0) {
dropbear_exit("Failed to set euid");
}
+ */
memset((void*)&addr, 0x0, sizeof(addr));
addr.sun_family = AF_UNIX;
diff -u -r ../dropbear-2013.62/svr-chansession.c ./svr-chansession.c
--- ../dropbear-2013.62/svr-chansession.c 2013-12-03 14:39:15.000000000 +0100
+++ ./svr-chansession.c 2014-01-05 21:32:15.438797159 +0100
@@ -874,6 +874,8 @@
#endif
/* clear environment */
+ /* termux: do not clear environment on android */
+#ifndef __ANDROID__
/* if we're debugging using valgrind etc, we need to keep the LD_PRELOAD
* etc. This is hazardous, so should only be used for debugging. */
#ifndef DEBUG_VALGRIND
@@ -886,6 +888,7 @@
}
#endif /* HAVE_CLEARENV */
#endif /* DEBUG_VALGRIND */
+#endif /* __ANDROID__ */
/* We can only change uid/gid as root ... */
if (getuid() == 0) {
@@ -911,12 +914,14 @@
}
}
+ /* termux: do not modify environment since we did not clean it */
+#ifndef __ANDROID__
/* set env vars */
addnewvar("USER", ses.authstate.pw_name);
addnewvar("LOGNAME", ses.authstate.pw_name);
addnewvar("HOME", ses.authstate.pw_dir);
addnewvar("SHELL", get_user_shell());
- addnewvar("PATH", DEFAULT_PATH);
+#endif /* __ANDROID__ */
if (chansess->term != NULL) {
addnewvar("TERM", chansess->term);
}