aboutsummaryrefslogtreecommitdiffstats
path: root/minadbd/sysdeps.h
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2012-03-19 15:52:03 -0700
committerDoug Zongker <dougz@android.com>2012-03-19 16:24:28 -0700
commit703ed152147d90a549a2fee7cda5771703e502a0 (patch)
tree453e0f55b5ee042862fc63e1bae86600c2754787 /minadbd/sysdeps.h
parent35a35a67663127e42c8048ca0dc7465068a5606f (diff)
downloadbootable_recovery-703ed152147d90a549a2fee7cda5771703e502a0.zip
bootable_recovery-703ed152147d90a549a2fee7cda5771703e502a0.tar.gz
bootable_recovery-703ed152147d90a549a2fee7cda5771703e502a0.tar.bz2
run minadbd as shell user
Make minadbd drop its root privileges after initializing. We need to make the /tmp directory writable by the shell group so that it can drop the sideloaded file there. Change-Id: I67b292cf769383f0f67fb934e5a80d408a4c131d
Diffstat (limited to 'minadbd/sysdeps.h')
-rw-r--r--minadbd/sysdeps.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/minadbd/sysdeps.h b/minadbd/sysdeps.h
index b518076..800ddb7 100644
--- a/minadbd/sysdeps.h
+++ b/minadbd/sysdeps.h
@@ -324,6 +324,18 @@ static __inline__ int adb_open_mode( const char* pathname, int options, int
return open( pathname, options, mode );
}
+static __inline__ int adb_creat(const char* path, int mode)
+{
+ int fd = open(path, O_CREAT|O_WRONLY|O_TRUNC|O_NOFOLLOW, mode);
+
+ if ( fd < 0 )
+ return -1;
+
+ close_on_exec(fd);
+ return fd;
+}
+#undef creat
+#define creat ___xxx_creat
static __inline__ int adb_open( const char* pathname, int options )
{
@@ -380,19 +392,6 @@ static __inline__ int adb_unlink(const char* path)
#undef unlink
#define unlink ___xxx_unlink
-static __inline__ int adb_creat(const char* path, int mode)
-{
- int fd = creat(path, mode);
-
- if ( fd < 0 )
- return -1;
-
- close_on_exec(fd);
- return fd;
-}
-#undef creat
-#define creat ___xxx_creat
-
static __inline__ int adb_socket_accept(int serverfd, struct sockaddr* addr, socklen_t *addrlen)
{
int fd;