If there's an error dropping privileges, abort.
Change-Id: I85ce12e93cb8c297add756dc3b872b8346eda00b
diff --git a/vm/native/dalvik_system_Zygote.c b/vm/native/dalvik_system_Zygote.c
index 8b09b96..c762f51 100644
--- a/vm/native/dalvik_system_Zygote.c
+++ b/vm/native/dalvik_system_Zygote.c
@@ -366,7 +366,8 @@
err = prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
if (err < 0) {
- LOGW("cannot PR_SET_KEEPCAPS: %s", strerror(errno));
+ LOGE("cannot PR_SET_KEEPCAPS: %s", strerror(errno));
+ dvmAbort();
}
}
@@ -375,23 +376,27 @@
err = setgroupsIntarray(gids);
if (err < 0) {
- LOGW("cannot setgroups(): %s", strerror(errno));
+ LOGE("cannot setgroups(): %s", strerror(errno));
+ dvmAbort();
}
err = setrlimitsFromArray(rlimits);
if (err < 0) {
- LOGW("cannot setrlimit(): %s", strerror(errno));
+ LOGE("cannot setrlimit(): %s", strerror(errno));
+ dvmAbort();
}
err = setgid(gid);
if (err < 0) {
- LOGW("cannot setgid(%d): %s", gid, strerror(errno));
+ LOGE("cannot setgid(%d): %s", gid, strerror(errno));
+ dvmAbort();
}
err = setuid(uid);
if (err < 0) {
- LOGW("cannot setuid(%d): %s", uid, strerror(errno));
+ LOGE("cannot setuid(%d): %s", uid, strerror(errno));
+ dvmAbort();
}
/*