From 03fc2fedd7ce46f79a6a319c14a14d2250a4d9d9 Mon Sep 17 00:00:00 2001 From: Evgenii Stepanov Date: Tue, 14 Mar 2017 14:47:25 -0700 Subject: [PATCH] Fix heap-buffer-overflow detected by ASAN. Bug: 34949125 Bug: 34606909 Test: Make sure Android boots when built with SANITIZE_TARGET='address' Change-Id: I9c004e806f2025098aa72228284b05affd2c2802 --- logd/LogBuffer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/logd/LogBuffer.cpp b/logd/LogBuffer.cpp index 9c634f680..2b6c27688 100644 --- a/logd/LogBuffer.cpp +++ b/logd/LogBuffer.cpp @@ -180,8 +180,13 @@ static enum match_type identical(LogBufferElement* elem, if (!avcr) return DIFFERENT; lenr -= avcr - msgr; if (lenl != lenr) return DIFFERENT; - if (fastcmp(avcl + strlen(avc), avcr + strlen(avc), lenl)) + // TODO: After b/35468874 is addressed, revisit "lenl > strlen(avc)" + // condition, it might become superflous. + if (lenl > strlen(avc) && + fastcmp(avcl + strlen(avc), avcr + strlen(avc), + lenl - strlen(avc))) { return DIFFERENT; + } return SAME; }