Dmitry Vyukov
cc1f318b5a
tsan: support pie binaries on newer kernels
...
4.1+ Linux kernels map pie binaries at 0x55:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d1fd836dcf00d2028c700c7e44d2c23404062c90
Currently tsan does not support app memory at 0x55 (https://github.com/google/sanitizers/issues/503 ).
Older kernels also map pie binaries at 0x55 when ASLR is disables (most notably under gdb).
This change extends tsan mapping for linux/x86_64 to cover 0x554-0x568 app range and fixes both 4.1+ kernels and gdb.
This required to slightly shrink low and high app ranges and move heap. The mapping become even more non-linear, since now we xor lower bits. Now even a continuous app range maps to split, intermixed shadow ranges. This breaks ShadowToMemImpl as it assumes linear mapping at least within a continuous app range (however it turned out to be already broken at least on arm64/42-bit vma as uncovered by r281970). So also change ShadowToMemImpl to hopefully a more robust implementation that does not assume a linear mapping.
llvm-svn: 282152
2016-09-22 13:42:02 +00:00
..
2016-09-14 13:53:06 +00:00
2016-05-26 17:05:36 +00:00
2016-04-16 07:03:45 +00:00
2016-04-15 12:34:00 +00:00
2015-11-19 17:28:46 +00:00
2015-11-06 11:05:53 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-07-11 21:51:56 +00:00
2015-12-10 17:09:53 +00:00
2015-06-30 17:23:29 +00:00
2015-04-27 22:08:08 +00:00
2015-11-20 11:07:16 +00:00
2015-11-30 19:43:03 +00:00
2016-04-21 14:49:25 +00:00
2016-04-15 12:34:00 +00:00
2015-12-07 19:40:33 +00:00
2016-06-02 19:18:22 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2015-11-28 09:16:34 +00:00
2016-09-17 14:39:53 +00:00
2016-04-07 12:10:28 +00:00
2016-03-24 11:54:33 +00:00
2016-04-07 12:10:28 +00:00
2015-11-19 17:28:46 +00:00
2015-11-30 14:11:48 +00:00
2015-11-30 19:43:03 +00:00
2015-11-30 19:43:03 +00:00
2015-11-30 19:43:03 +00:00
2015-11-19 17:28:46 +00:00
2015-05-14 20:27:12 +00:00
2015-04-27 22:08:08 +00:00
2016-02-17 20:40:10 +00:00
2015-11-19 17:28:46 +00:00
2015-11-19 17:28:46 +00:00
2015-11-19 17:28:46 +00:00
2016-08-16 05:06:56 +00:00
2015-04-27 22:08:08 +00:00
2016-04-15 12:34:00 +00:00
2016-05-17 22:24:55 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-03-04 06:02:52 +00:00
2015-04-20 10:35:21 +00:00
2016-04-15 12:34:00 +00:00
2015-06-24 13:04:12 +00:00
2015-06-24 13:04:12 +00:00
2015-06-24 11:51:41 +00:00
2016-02-23 01:34:17 +00:00
2016-04-16 07:03:45 +00:00
2015-12-08 17:54:47 +00:00
2016-08-16 05:06:56 +00:00
2016-08-16 05:06:56 +00:00
2016-08-16 05:06:56 +00:00
2016-08-16 05:06:56 +00:00
2016-05-10 11:19:50 +00:00
2016-04-15 12:34:00 +00:00
2015-04-27 22:08:08 +00:00
2016-08-30 13:01:04 +00:00
2015-11-30 19:43:03 +00:00
2015-11-30 19:43:03 +00:00
2015-12-08 21:54:39 +00:00
2016-02-03 15:10:00 +00:00
2015-04-28 18:08:42 +00:00
2015-11-30 19:43:03 +00:00
2015-11-30 19:43:03 +00:00
2016-06-03 11:48:27 +00:00
2015-11-19 17:28:46 +00:00
2016-05-21 08:31:13 +00:00
2016-03-16 15:39:20 +00:00
2015-11-13 20:36:08 +00:00
2015-11-13 20:36:08 +00:00
2015-11-13 20:36:08 +00:00
2015-11-13 20:36:08 +00:00
2015-11-13 20:36:08 +00:00
2015-11-28 09:18:43 +00:00
2015-11-13 20:36:08 +00:00
2016-09-22 13:42:02 +00:00
2016-02-17 20:40:10 +00:00
2015-11-30 14:11:48 +00:00
2016-05-06 19:35:22 +00:00
2015-11-19 12:02:02 +00:00
2015-11-19 12:02:02 +00:00
2015-11-30 19:43:03 +00:00
2016-03-18 07:55:44 +00:00
2016-04-15 12:34:00 +00:00
2015-09-03 11:20:46 +00:00
2015-11-19 17:28:46 +00:00
2015-11-19 17:28:46 +00:00
2015-11-20 11:07:16 +00:00
2016-03-07 01:30:02 +00:00
2016-03-07 01:30:02 +00:00
2016-07-27 14:34:21 +00:00
2016-09-17 14:33:36 +00:00
2015-12-10 17:09:53 +00:00
2016-08-16 05:06:56 +00:00
2015-11-30 14:11:48 +00:00
2015-11-07 14:29:38 +00:00
2016-02-23 17:16:26 +00:00
2015-11-07 14:29:38 +00:00
2015-11-07 14:29:38 +00:00
2015-11-30 14:11:48 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-06-03 11:48:27 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2015-11-28 09:22:27 +00:00
2015-11-23 08:17:17 +00:00
2015-11-23 08:17:17 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2016-04-15 12:34:00 +00:00
2015-11-20 14:17:43 +00:00