summaryrefslogtreecommitdiff
path: root/logd/LogBuffer.cpp
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2017-03-15 06:46:27 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-03-15 06:46:28 +0000
commit3d028f14c8a23c20e406f8f9d2c1ce7c8b54ad49 (patch)
tree724cc4a8e269cb0dc0e1882853d13108191fd2e8 /logd/LogBuffer.cpp
parent97a2c49a58462e94097c444adae372be8dd3a022 (diff)
parent03fc2fedd7ce46f79a6a319c14a14d2250a4d9d9 (diff)
Merge "Fix heap-buffer-overflow detected by ASAN."
Diffstat (limited to 'logd/LogBuffer.cpp')
-rw-r--r--logd/LogBuffer.cpp7
1 files changed, 6 insertions, 1 deletions
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<memcmp>(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<memcmp>(avcl + strlen(avc), avcr + strlen(avc),
+ lenl - strlen(avc))) {
return DIFFERENT;
+ }
return SAME;
}