diff --git a/liblog/logger_name.cpp b/liblog/logger_name.cpp index 3aa684132..ece05505b 100644 --- a/liblog/logger_name.cpp +++ b/liblog/logger_name.cpp @@ -50,8 +50,9 @@ log_id_t android_name_to_log_id(const char* logName) { unsigned int ret; if (!logName) { - return static_cast(0xFFFFFFFF); + return static_cast(LOG_ID_MAX); } + b = strrchr(logName, '/'); if (!b) { b = logName; @@ -65,5 +66,6 @@ log_id_t android_name_to_log_id(const char* logName) { return static_cast(ret); } } - return static_cast(0xFFFFFFFF); /* should never happen */ + + return static_cast(LOG_ID_MAX); } diff --git a/logcat/tests/logcat_test.cpp b/logcat/tests/logcat_test.cpp index d5c40bec0..b32b43737 100644 --- a/logcat/tests/logcat_test.cpp +++ b/logcat/tests/logcat_test.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -1747,3 +1748,13 @@ TEST(logcat, help) { EXPECT_EQ(logcatHelpTextSize * 2, logcatLastHelpTextSize); #endif } + +TEST(logcat, invalid_buffer) { + FILE* fp = popen("logcat -b foo 2>&1", "r"); + ASSERT_NE(nullptr, fp); + std::string output; + ASSERT_TRUE(android::base::ReadFdToString(fileno(fp), &output)); + pclose(fp); + + ASSERT_TRUE(android::base::StartsWith(output, "unknown buffer foo\n")); +}