summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2011-10-22 07:15:35 -0700
committerJay Freeman (saurik) <saurik@saurik.com>2011-10-22 07:15:35 -0700
commit80fb9fadc672b27f7abd40452663f7c4c74a86d9 (patch)
tree8e3b45c38b8549494f1fff5a4015f0809009f634
parent6b38c1732a783374afe0172548107ea7e95402b7 (diff)
downloadldid-80fb9fadc672b27f7abd40452663f7c4c74a86d9.tar.gz
ldid-80fb9fadc672b27f7abd40452663f7c4c74a86d9.tar.zst
ldid-80fb9fadc672b27f7abd40452663f7c4c74a86d9.zip
Support read-only mmap when possible.
-rw-r--r--ldid.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/ldid.cpp b/ldid.cpp
index 4982582..f42d15d 100644
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -519,9 +519,9 @@ class FatHeader :
}
};
-FatHeader Map(const char *path) {
+FatHeader Map(const char *path, bool ro = false) {
size_t size;
- void *base(map(path, 0, _not(size_t), &size, false));
+ void *base(map(path, 0, _not(size_t), &size, ro));
return FatHeader(base, size);
}
@@ -877,7 +877,7 @@ int main(int argc, const char *argv[]) {
if (flag_p)
printf("path%zu='%s'\n", filei, file.c_str());
- FatHeader fat_header(Map(temp == NULL ? path : temp));
+ FatHeader fat_header(Map(temp == NULL ? path : temp, !(flag_R | flag_T | flag_s | flag_S)));
struct linkedit_data_command *signature(NULL);
_foreach (mach_header, fat_header.GetMachHeaders()) {