Add randomized padding around shared library mappings.
Improve ASLR by increasing the randomly sized gaps between shared
library mappings, and keep them mapped PROT_NONE.
Bug: 158113540
Test: look at /proc/$$/maps
Change-Id: Ie72c84047fb624fe2ac8b7744b2a2d0d255ea974
diff --git a/linker/linker_soinfo.cpp b/linker/linker_soinfo.cpp
index 4f67003..088c17d 100644
--- a/linker/linker_soinfo.cpp
+++ b/linker/linker_soinfo.cpp
@@ -900,6 +900,24 @@
g_soinfo_handles_map[handle_] = this;
}
+void soinfo::set_map_start(ElfW(Addr) map_start) {
+ CHECK(has_min_version(6));
+ map_start_ = map_start;
+}
+ElfW(Addr) soinfo::get_map_start() const {
+ CHECK(has_min_version(6));
+ return map_start_;
+}
+
+void soinfo::set_map_size(size_t map_size) {
+ CHECK(has_min_version(6));
+ map_size_ = map_size;
+}
+size_t soinfo::get_map_size() const {
+ CHECK(has_min_version(6));
+ return map_size_;
+}
+
// TODO(dimitry): Move SymbolName methods to a separate file.
uint32_t calculate_elf_hash(const char* name) {