Merge commit '1ee45c2d2d816ee912624d81ff1b0aaa98e8fa74' into HEAD
diff --git a/cmds/installd/installd.c b/cmds/installd/installd.c
index a2cbccc..f52cee0 100644
--- a/cmds/installd/installd.c
+++ b/cmds/installd/installd.c
@@ -16,6 +16,8 @@
#include <sys/capability.h>
#include <linux/prctl.h>
+#include <selinux/android.h>
+#include <selinux/avc.h>
#include "installd.h"
@@ -526,6 +528,7 @@
struct sockaddr addr;
socklen_t alen;
int lsocket, s, count;
+ int selinux_enabled = (is_selinux_enabled() > 0);
ALOGI("installd firing up\n");
@@ -539,6 +542,11 @@
exit(1);
}
+ if (selinux_enabled && selinux_status_open(true) < 0) {
+ ALOGE("Could not open selinux status; exiting.\n");
+ exit(1);
+ }
+
drop_privileges();
lsocket = android_get_control_socket(SOCKET_PATH);
@@ -577,6 +585,9 @@
break;
}
buf[count] = 0;
+ if (selinux_enabled && selinux_status_updated() > 0) {
+ selinux_android_seapp_context_reload();
+ }
if (execute(s, buf)) break;
}
ALOGI("closing connection\n");
diff --git a/libs/binder/MemoryHeapBase.cpp b/libs/binder/MemoryHeapBase.cpp
index d1cbf1c..43a01e4 100644
--- a/libs/binder/MemoryHeapBase.cpp
+++ b/libs/binder/MemoryHeapBase.cpp
@@ -31,11 +31,6 @@
#include <binder/MemoryHeapBase.h>
-#ifdef HAVE_ANDROID_OS
-#include <linux/android_pmem.h>
-#endif
-
-
namespace android {
// ---------------------------------------------------------------------------
@@ -108,18 +103,9 @@
{
if (size == 0) {
// try to figure out the size automatically
-#ifdef HAVE_ANDROID_OS
- // first try the PMEM ioctl
- pmem_region reg;
- int err = ioctl(fd, PMEM_GET_TOTAL_SIZE, ®);
- if (err == 0)
- size = reg.len;
-#endif
- if (size == 0) { // try fstat
- struct stat sb;
- if (fstat(fd, &sb) == 0)
- size = sb.st_size;
- }
+ struct stat sb;
+ if (fstat(fd, &sb) == 0)
+ size = sb.st_size;
// if it didn't work, let mmap() fail.
}