Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63f4a841 authored by Nick Kralevich's avatar Nick Kralevich
Browse files

liblog: ensure that the message length is consistent

When parsing log entries which may have embedded \0s, it's
possible for entry->messageLen to not be the actual
length of the string in entry->message.  Detect this condition.

Bug: 5417417
Change-Id: I712cac7696af7831e24765b5a1b345d6ff5fb407
parent 76feaf37
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -374,6 +374,13 @@ int android_log_processLogBuffer(struct logger_entry *buf,
    entry->messageLen = buf->len - preambleAndNullLen;
    entry->message = entry->tag + tag_len + 1;

    if (entry->messageLen != strlen(entry->message)) {
        fprintf(stderr,
                "+++ LOG: Message length inconsistent. Expected %d, got %d\n",
                entry->messageLen, strlen(entry->message));
        return -1;
    }

    return 0;
}

@@ -830,7 +837,6 @@ char *android_log_formatLogLine (
        while(pm < (entry->message + entry->messageLen)) {
            const char *lineStart;
            size_t lineLen;

            lineStart = pm;

            // Find the next end-of-line in message