475c5e93fe
This sanitizer checks for overaligned reads and writes, or put another way, use of underaligned pointers. This usually happens when you cast, e.g. char* to int* without checking that the char* is 4-byte aligned. Each of the changes under src/ fixes something just like that. The unusual setup for tools/xsan.blacklist is there to force a rebuild whenever tools/xsan.blacklist changes. I spent a good few minutes debugging rebuilds not happening this morning, perhaps from some strange ccache interaction. Align SkTextBlobs as void* (today they're just 4-byte) so the SkTextBlob::RunRecords we put after them in SkTextBlobBuilder buffers are properly aligned (for the SkTypeface* inside). There's no obvious error in void SkRRect::computeType(), but one bot seems to have seen some sort of issue with SK_AT_SCOPE_EXIT(SkASSERT(this->isValid())); I can't reproduce it locally, so I'm just going to unroll it. Change-Id: I904d94f65f695e1b626b684c32216a4930b72b0c Reviewed-on: https://skia-review.googlesource.com/146104 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
16 lines
569 B
Plaintext
16 lines
569 B
Plaintext
#if 0
|
|
|
|
# This file must be a no-op C #include header, and a valid *SAN blacklist file.
|
|
# Luckily, anything starting with # is a comment to *SAN blacklist files,
|
|
# and anything inside #if 0 is ignored by C. Yippee!
|
|
#
|
|
# If you want to type '*', type '.*' instead. Don't make C comments!
|
|
|
|
# libpng and zlib both dereference under-aligned pointers.
|
|
# TODO: it'd be nice to tag these as [alignment] only but our Mac toolchain can't yet.
|
|
# [alignment]
|
|
src:.*third_party/externals/libpng/intel/filter_sse2_intrinsics.c
|
|
src:.*third_party/externals/zlib/deflate.c
|
|
|
|
#endif
|