From e2160fb6c9f522c07030f9f9b2b17e01b1ef0b64 Mon Sep 17 00:00:00 2001 From: "jreiser@BitWagon.com" Date: Sat, 17 Sep 2016 10:41:38 -0700 Subject: [PATCH] segLINK.initprot |= VM_PROT_EXECUTE changed src/p_mach.cpp --- src/p_mach.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/p_mach.cpp b/src/p_mach.cpp index 5e32a1b1..c30730c3 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -836,6 +836,8 @@ next: } if (!strcmp("__LINKEDIT", segptr->segname)) { memcpy(&segLINK, segptr, sizeof(segLINK)); + segLINK.initprot = Mach_segment_command::VM_PROT_READ + | Mach_segment_command::VM_PROT_EXECUTE; delta = offLINK - segLINK.fileoff; // relocation constant // The contents for __LINKEDIT remain the same, @@ -1722,7 +1724,8 @@ void PackMachBase::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e segLINK.cmdsize = sizeof(segLINK); strncpy((char *)segLINK.segname, "__LINKEDIT", sizeof(segLINK.segname)); segLINK.nsects = 0; - segLINK.initprot = Mach_segment_command::VM_PROT_READ; + segLINK.initprot = Mach_segment_command::VM_PROT_READ + | Mach_segment_command::VM_PROT_EXECUTE; // Adjust later: .vmaddr .vmsize .fileoff .filesize if (my_filetype == Mach_header::MH_EXECUTE) {