diff options
author | Mark Salyzyn <salyzyn@google.com> | 2016-11-03 20:53:08 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-11-03 20:53:09 +0000 |
commit | 11f8b2006827a70faf9eafabdc34b80f8237a855 (patch) | |
tree | 8157056bf5b92a6e0f673d51e41fb7810eb61f69 | |
parent | 3a724a8f5d7876b97e4e7f39a0cfc2f0fdc87fd3 (diff) | |
parent | 5febc5131899402e983c319af9c38596ee9a56a2 (diff) |
Merge changes Ifb1b550c,Ic7377efc
* changes:
liblog: test report pmsg not configured if ENOMEM return
logd: clear DUMPABLE
-rw-r--r-- | liblog/tests/libc_test.cpp | 21 | ||||
-rw-r--r-- | liblog/tests/liblog_test.cpp | 18 | ||||
-rw-r--r-- | logd/main.cpp | 5 |
3 files changed, 37 insertions, 7 deletions
diff --git a/liblog/tests/libc_test.cpp b/liblog/tests/libc_test.cpp index 3d5814754..f05a955e7 100644 --- a/liblog/tests/libc_test.cpp +++ b/liblog/tests/libc_test.cpp @@ -16,6 +16,7 @@ #include <gtest/gtest.h> +#include <errno.h> #include <stdio.h> TEST(libc, __pstore_append) { @@ -23,6 +24,22 @@ TEST(libc, __pstore_append) { ASSERT_TRUE(NULL != (fp = fopen("/dev/pmsg0", "a"))); static const char message[] = "libc.__pstore_append\n"; ASSERT_EQ((size_t)1, fwrite(message, sizeof(message), 1, fp)); - ASSERT_EQ(0, fclose(fp)); - fprintf(stderr, "Reboot, ensure string libc.__pstore_append is in /sys/fs/pstore/pmsg-ramoops-0\n"); + int fflushReturn = fflush(fp); + int fflushErrno = fflushReturn ? errno : 0; + ASSERT_EQ(0, fflushReturn); + ASSERT_EQ(0, fflushErrno); + int fcloseReturn = fclose(fp); + int fcloseErrno = fcloseReturn ? errno : 0; + ASSERT_EQ(0, fcloseReturn); + ASSERT_EQ(0, fcloseErrno); + if ((fcloseErrno == ENOMEM) || (fflushErrno == ENOMEM)) { + fprintf(stderr, + "Kernel does not have space allocated to pmsg pstore driver configured\n" + ); + } + if (!fcloseReturn && !fcloseErrno && !fflushReturn && !fflushReturn) { + fprintf(stderr, + "Reboot, ensure string libc.__pstore_append is in /sys/fs/pstore/pmsg-ramoops-0\n" + ); + } } diff --git a/liblog/tests/liblog_test.cpp b/liblog/tests/liblog_test.cpp index fd38849e6..9c095234f 100644 --- a/liblog/tests/liblog_test.cpp +++ b/liblog/tests/liblog_test.cpp @@ -16,6 +16,7 @@ #include <ctype.h> #include <dirent.h> +#include <errno.h> #include <fcntl.h> #include <inttypes.h> #include <semaphore.h> @@ -2655,12 +2656,19 @@ TEST(liblog, __android_log_pmsg_file_write) { bool logdwActiveAfter__android_log_close = isLogdwActive(); EXPECT_FALSE(pmsgActiveAfter__android_log_close); EXPECT_FALSE(logdwActiveAfter__android_log_close); - EXPECT_LT(0, __android_log_pmsg_file_write( + int return__android_log_pmsg_file_write = __android_log_pmsg_file_write( LOG_ID_CRASH, ANDROID_LOG_VERBOSE, - __pmsg_file, max_payload_buf, sizeof(max_payload_buf))); - fprintf(stderr, "Reboot, ensure file %s matches\n" - "with liblog.__android_log_msg_file_read test\n", - __pmsg_file); + __pmsg_file, max_payload_buf, sizeof(max_payload_buf)); + EXPECT_LT(0, return__android_log_pmsg_file_write); + if (return__android_log_pmsg_file_write == -ENOMEM) { + fprintf(stderr, + "Kernel does not have space allocated to pmsg pstore driver configured\n" + ); + } else if (!return__android_log_pmsg_file_write) { + fprintf(stderr, "Reboot, ensure file %s matches\n" + "with liblog.__android_log_msg_file_read test\n", + __pmsg_file); + } bool pmsgActiveAfter__android_pmsg_file_write = isPmsgActive(); bool logdwActiveAfter__android_pmsg_file_write = isLogdwActive(); EXPECT_FALSE(pmsgActiveAfter__android_pmsg_file_write); diff --git a/logd/main.cpp b/logd/main.cpp index 0cb26dcb1..1ac1415ed 100644 --- a/logd/main.cpp +++ b/logd/main.cpp @@ -106,6 +106,11 @@ static int drop_privs() { return -1; } + if (prctl(PR_SET_DUMPABLE, 0) < 0) { + android::prdebug("failed to clear PR_SET_DUMPABLE"); + return -1; + } + gid_t groups[] = { AID_READPROC }; ScopedMinijail j(minijail_new()); minijail_set_supplementary_gids(j.get(), arraysize(groups), groups); |