From 253c468b3ae54aae1c6280f07ac76cf05c95ae86 Mon Sep 17 00:00:00 2001 From: Greg Alexander Date: Sat, 20 Dec 2014 15:50:46 -0500 Subject: [PATCH] close all the android system fds when starting the dropbear server --- jni/interface.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jni/interface.c b/jni/interface.c index 9572e77..510fb27 100644 --- a/jni/interface.c +++ b/jni/interface.c @@ -135,6 +135,7 @@ Java_org_galexander_sshd_SimpleSSHDService_start_1sshd(JNIEnv *env_, const char *logfn; int logfd; int retval; + int i; logfn = conf_path_file("dropbear.err"); unlink(logfn); @@ -143,6 +144,11 @@ Java_org_galexander_sshd_SimpleSSHDService_start_1sshd(JNIEnv *env_, /* replace stderr, so the output is preserved... */ dup2(logfd, 2); } + for (i = 3; i < 255; i++) { + /* close all of the dozens of fds that android typically + * leaves open */ + close(i); + } argv[argc++] = "-R"; /* enable DROPBEAR_DELAY_HOSTKEY */ argv[argc++] = "-F"; /* don't redundant fork to background */