liblog: logprint: deal with malformed log messages

am: 476b771

* commit '476b771bdaebf7aa72d41730557fce82cee7faf3':
  liblog: logprint: deal with malformed log messages
This commit is contained in:
Mark Salyzyn 2016-03-24 19:25:32 +00:00 committed by android-build-merger
commit 128c0f7081
2 changed files with 15 additions and 3 deletions

View File

@ -512,8 +512,18 @@ LIBLOG_ABI_PUBLIC int android_log_processLogBuffer(
}
if (msgStart == -1) {
fprintf(stderr, "+++ LOG: malformed log message\n");
return -1;
/* +++ LOG: malformed log message, DYB */
for (i = 1; i < buf->len; i++) {
/* odd characters in tag? */
if ((msg[i] <= ' ') || (msg[i] == ':') || (msg[i] >= 0x7f)) {
msg[i] = '\0';
msgStart = i + 1;
break;
}
}
if (msgStart == -1) {
msgStart = buf->len - 1; /* All tag, no message, print truncates */
}
}
if (msgEnd == -1) {
/* incoming message not null-terminated; force it */

View File

@ -1065,8 +1065,10 @@ TEST(liblog, __android_log_buf_print__maxtag) {
fflush(stderr);
int printLogLine =
android_log_printLogLine(logformat, fileno(stderr), &entry);
// Legacy tag truncation
EXPECT_LE(128, printLogLine);
EXPECT_GT(LOGGER_ENTRY_MAX_PAYLOAD, printLogLine);
// Measured maximum if we try to print part of the tag as message
EXPECT_GT(LOGGER_ENTRY_MAX_PAYLOAD * 13 / 8, printLogLine);
}
android_log_format_free(logformat);
}