Ensure that /data/anr/traces.txt is world-writable
The umask changed for init. We have to force /data/anr to be world
readble and /data/anr/traces.txt to be world writable so dalvik
processes can write to it.
Hopefully this is a short term change while we investigate tightening
up these permissions.
Bug: 6300296
Change-Id: Iacb4c9f1bc69d2ac679697f9cf9a52694f888489
diff --git a/cmds/dumpstate/utils.c b/cmds/dumpstate/utils.c
index 0d5ab90..25505f8 100644
--- a/cmds/dumpstate/utils.c
+++ b/cmds/dumpstate/utils.c
@@ -375,6 +375,7 @@
*slash = '\0';
if (!mkdir(anr_traces_dir, 0775)) {
chown(anr_traces_dir, AID_SYSTEM, AID_SYSTEM);
+ chmod(anr_traces_dir, 0775);
} else if (errno != EEXIST) {
fprintf(stderr, "mkdir(%s): %s\n", anr_traces_dir, strerror(errno));
return NULL;
@@ -387,6 +388,12 @@
fprintf(stderr, "%s: %s\n", traces_path, strerror(errno));
return NULL;
}
+ int chmod_ret = fchmod(fd, 0666);
+ if (chmod_ret < 0) {
+ fprintf(stderr, "fchmod on %s failed: %s\n", traces_path, strerror(errno));
+ close(fd);
+ return NULL;
+ }
close(fd);
/* walk /proc and kill -QUIT all Dalvik processes */