dropbear: Patch away hard link usage

Fixes #1082.
This commit is contained in:
Fredrik Fornwall 2017-06-14 00:02:08 +02:00
parent 47f33ba3f5
commit 7f77886824
2 changed files with 29 additions and 0 deletions

View File

@ -2,6 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://matt.ucc.asn.au/dropbear/dropbear.html
TERMUX_PKG_DESCRIPTION="Small SSH server and client"
TERMUX_PKG_DEPENDS="libutil"
TERMUX_PKG_VERSION=2017.75
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://matt.ucc.asn.au/dropbear/releases/dropbear-${TERMUX_PKG_VERSION}.tar.bz2
TERMUX_PKG_SHA256=6cbc1dcb1c9709d226dff669e5604172a18cf5dbf9a201474d5618ae4465098c
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-syslog --disable-utmp --disable-utmpx --disable-wtmp"

View File

@ -0,0 +1,28 @@
diff -u -r ../dropbear-2017.75/gensignkey.c ./gensignkey.c
--- ../dropbear-2017.75/gensignkey.c 2017-05-18 16:47:01.000000000 +0200
+++ ./gensignkey.c 2017-06-13 23:50:59.888597482 +0200
@@ -137,6 +137,16 @@
goto out;
}
+#ifdef __ANDROID__
+ /* Hard links are not possible and renam. */
+ if (skip_exist && access(filename, F_OK) == 0) {
+ /* Ok. */
+ } else if (rename(fn_temp, filename) < 0) {
+ dropbear_log(LOG_ERR, "Failed moving key file to %s: %s", filename,
+ strerror(errno));
+ ret = DROPBEAR_FAILURE;
+ }
+#else
if (link(fn_temp, filename) < 0) {
/* If generating keys on connection (skipexist) it's OK to get EEXIST
- we probably just lost a race with another connection to generate the key */
@@ -148,6 +158,7 @@
goto out;
}
}
+#endif
out:
if (buf) {