[all-commits] [llvm/llvm-project] 1b5765: tsan: tolerate munmap with invalid arguments
Dmitry Vyukov via All-commits
all-commits at lists.llvm.org
Thu Dec 2 08:51:04 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 1b576585eba4d08d5c97c39f5f43d0bf6eed4e4e
https://github.com/llvm/llvm-project/commit/1b576585eba4d08d5c97c39f5f43d0bf6eed4e4e
Author: Dmitry Vyukov <dvyukov at google.com>
Date: 2021-12-02 (Thu, 02 Dec 2021)
Changed paths:
M compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
A compiler-rt/test/tsan/munmap_invalid.cpp
Log Message:
-----------
tsan: tolerate munmap with invalid arguments
We call UnmapShadow before the actual munmap, at that point we don't yet
know if the provided address/size are sane. We can't call UnmapShadow
after the actual munmap becuase at that point the memory range can
already be reused for something else, so we can't rely on the munmap
return value to understand is the values are sane.
While calling munmap with insane values (non-canonical address, negative
size, etc) is an error, the kernel won't crash. We must also try to not
crash as the failure mode is very confusing (paging fault inside of the
runtime on some derived shadow address).
Such invalid arguments are observed on Chromium tests:
https://bugs.chromium.org/p/chromium/issues/detail?id=1275581
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D114944
More information about the All-commits
mailing list