diff options
author | Kostya Kortchinsky <kostyak@google.com> | 2017-08-16 16:40:48 +0000 |
---|---|---|
committer | Kostya Kortchinsky <kostyak@google.com> | 2017-08-16 16:40:48 +0000 |
commit | 43917720a72b3e7e22366ea2231655f852d06c7c (patch) | |
tree | 234d4792ffd6d9fdab368a6faa2a2b64c6a38480 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | |
parent | d3d89efa3e69db89c9d6fa2b59326f26f0c386dd (diff) | |
download | llvm-43917720a72b3e7e22366ea2231655f852d06c7c.zip llvm-43917720a72b3e7e22366ea2231655f852d06c7c.tar.gz llvm-43917720a72b3e7e22366ea2231655f852d06c7c.tar.bz2 |
[scudo] Application & platform compatibility changes
Summary:
This patch changes a few (small) things around for compatibility purposes for
the current Android & Fuchsia work:
- `realloc`'ing some memory that was not allocated with `malloc`, `calloc` or
`realloc`, while UB according to http://pubs.opengroup.org/onlinepubs/009695399/functions/realloc.html
is more common that one would think. We now only check this if
`DeallocationTypeMismatch` is set; change the "mismatch" error
messages to be more homogeneous;
- some sketchily written but widely used libraries expect a call to `realloc`
to copy the usable size of the old chunk to the new one instead of the
requested size. We have to begrundingly abide by this de-facto standard.
This doesn't seem to impact security either way, unless someone comes up with
something we didn't think about;
- the CRC32 intrinsics for 64-bit take a 64-bit first argument. This is
misleading as the upper 32 bits end up being ignored. This was also raising
`-Wconversion` errors. Change things to take a `u32` as first argument.
This also means we were (and are) only using 32 bits of the Cookie - not a
big thing, but worth mentioning.
- Includes-wise: prefer `stddef.h` to `cstddef`, move `scudo_flags.h` where it
is actually needed.
- Add tests for the memalign-realloc case, and the realloc-usable-size one.
(Edited typos)
Reviewers: alekseyshl
Reviewed By: alekseyshl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D36754
llvm-svn: 311018
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions