Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!us.feeder.erje.net!news.linkpendium.com!news.linkpendium.com!news.iecc.com!.POSTED!nerds-end From: chakaram@auth.gr Newsgroups: comp.compilers Subject: Re: Executing from dynamically allocated memory Date: Sat, 12 Oct 2013 19:20:45 +0300 Organization: Compilers Central Lines: 13 Sender: johnl@iecc.com Approved: comp.compilers@iecc.com Message-ID: <13-10-007@comp.compilers> References: <13-10-004@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed; DelSp=Yes X-Trace: leila.iecc.com 1381604033 84044 64.57.183.58 (12 Oct 2013 18:53:53 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Sat, 12 Oct 2013 18:53:53 +0000 (UTC) Keywords: architecture, code Posted-Date: 12 Oct 2013 14:53:53 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:990 As our moderator pointed out, sounds like NX. Use mmap() with PROT_READ|PROT_WRITE|PROT_EXEC or just PROT_WRITE and then mprotect() your region to PROT_READ|PROT_EXEC. If you're on an i386, then it's probably some kernel hardening patch that makes the heap non executable. ./ck -- Chariton Karamitas Electrical and Computer Engineering Department Fuculty of Engineering Aristotle University of Thessaloniki, Greece